2010-11-27 119 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一起玩來定義他們的權限。