2009-08-11 88 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