2009-08-11 85 views
5

所以,我使用Paperclip和AWS-S3,這非常棒。它效果很好。但只有一個問題:我需要上傳真正大的文件。如超過50兆字節。所以,nginx死亡。顯然,Paperclip在進入S3之前將東西存儲到磁盤上?回形針,大文件上傳和AWS

我發現這個really cool article,但它似乎也先到磁盤,然後在背景中做所有事情。

理想情況下,我可以在後臺上傳文件......我有一小部分經驗是用PHP做的,但Rails至今還沒有。任何人都可以指向一個大方向,甚至?

回答

5

也許你必須增加ngix configs中的超時時間?

1

您可能會感興趣這裏我的帖子:

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

其對上傳多個文件(有進度條,同時)直接連接到S3沒有擊中服務器。

+0

感謝您的鏈接!我可以看到的唯一問題是FancyUpload在Flash中,而Flash在開始上傳之前必須將整個文件加載到內存中。所以如果我想要上傳一個300MB的文件,我必須擁有那麼多的內存......我測試過的閃存上傳器讓我的Firefox崩潰了,而且我的機器上有4GB的內存。不過,這篇文章還是很有意思的,我一定會在後面提及它...... – 2009-08-28 17:34:40

+0

哦,那確實是一個劣勢!我不知道那件事。 – 2009-08-29 14:36:50

+2

關於Flash在上傳之前將整個文件加載到內存中的評論不再是真實的。他們已經將它改變到只能緩衝現在需要的東西 – iwasrobbed 2011-05-27 17:18:28

5

您可以完全繞過服務器並直接上傳到S3,以防止超時。 Heroku也發生過同樣的事情。如果您在使用Rails 3,請看看我的示例項目:使用Rails 3

示例項目,Flash和基於MooTools的-FancyUploader直接上傳到S3:https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

使用Rails 3 Sample項目,閃存/ Silverlight的/ GoogleGears /的BrowserPlus和基於jQuery的Plupload直接上傳到S3:https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

順便說一句,你可以使用像這樣的博客文章(尼科寫)做回形針後處理描述:

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

0

我有一個類似的問題,但使用回形針,乘客和阿帕奇。
和nginx一樣,apache在apache中有一個Timeout指令,我增加了這個指令來解決我的問題。

乘客在上傳大文件時還有一件有趣的事情。
超過8k的任何內容都寫入/ tmp/passenger。如果apache沒有 的權限來寫,那麼你也會得到500個錯誤。

這是文章。
http://tinyw.in/fwVB