2010-11-27 120 views
2

有没有办法将sftp帐户打包到s3中使用rails的存储桶中的特定文件夹?使用Rails + S3创建FTP帐户

我需要用户通过ftp将文件上传到批处理文件夹。由于文件的大小和数量都很大,我猜最好的选择是通过FTP并避免所有的网页上传。

比方说,我有一个用户模型与角色协作者。当一个合作者,他可以登录他的用户名(用户1)对我们说ftp.mysite.com,去

s3.amazonaws.com/mybucket/batches/users/user1

任何想法如何/密码完成这个?

谢谢。

回答

1

由于用户与FTP交互而不是与Web应用程序交互,因此您可以实现一个普通的Ruby脚本而不是Rails Web应用程序。

  • 每个用户都有自己的FTP区域上传文件; ftp.mysite.com/user1ftp.mysite.com/user2,...
  • 定期脚本检查是否存在使用net/ftp标准库
  • 如果有任何在用户的FTP文件夹的任何新的文件,通过AWS::S3上传文件,以便S3,最终上创建文件夹在S3斗如果缺少
  • 一旦上传到S3,该文件是从FTP
  • 删除

注:

  1. 永远y用户只能访问自己的FTP文件夹,而Ruby脚本应该访问任何FTP文件夹
  2. 如果您的用户可以使用FTP,他们可能可以使用Amazon S3 Organizer(S3Fox),Cyberduck或其他S3客户端。创建一个存储桶,然后用户和文件夹与S3 ACL一起玩来定义他们的权限。