使用Rails + S3创建FTP帐户

时间:2010-11-27 15:15:15

标签: ruby-on-rails amazon-s3

有没有办法在s3中使用rails将ftp帐户创建到存储桶内的特定文件夹?

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

假设我有一个带有角色协作者的用户模型。什么时候是合作者,他可以使用他的用户名(user1)/密码登录,让我们说ftp.mysite.com并转到

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

知道怎么做到这一点吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

  • 每个用户都有自己的FTP区域来上传文件; ftp.mysite.com/user1ftp.mysite.com/user2,...
  • 脚本会定期使用net/ftp标准库检查用户的FTP文件夹中是否有新文件
  • 如果有,请通过AWS::S3将文件上传到S3,最后在S3存储桶上创建文件夹(如果缺少
  • 上传到S3后,文件将从FTP中删除

注意:

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