5

所以,我正在使用 Paperclip 和 AWS-S3,这很棒。而且效果很好。不过,只有一个问题:我需要上传非常大的文件。如超过 50 兆字节。因此,nginx 死了。那么显然 Paperclip 在去 S3 之前将东西存储到磁盘?

我发现这篇非常酷的文章,但它似乎也是先进入磁盘,然后在后台执行其他所有操作。

理想情况下,我可以在后台上传文件......我有少量使用 PHP 执行此操作的经验,但目前还没有使用 Rails。任何人都可以为我指明一个大致的方向吗?

4

4 回答 4

6

您可以完全绕过服务器并直接上传到 S3,这将防止超时。同样的事情也发生在 Heroku 上。如果您使用的是 Rails 3,请查看我的示例项目:

使用 Rails 3、Flash 和基于 MooTools 的 FancyUploader 直接上传到 S3 的示例项目:https ://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

使用 Rails 3、Flash/Silverlight/GoogleGears/BrowserPlus 和基于 jQuery 的 Plupload 直接上传到 S3 的示例项目:https ://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

顺便说一句,您可以使用 Paperclip 进行后期处理,使用类似这篇博文(Nico 写的)描述的内容:

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

于 2011-05-27T17:19:50.670 回答
5

也许您必须增加 ngix 配置中的超时时间?

于 2009-08-12T10:24:31.027 回答
1

你可能对我的帖子感兴趣:

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

它关于将多个文件(同时带有进度条)直接上传到 S3 而无需访问服务器。

于 2009-08-28T14:55:50.320 回答
0

我遇到了类似的问题,但使用回形针、乘客和 apache。
像 nginx 一样,apache 在 apache 中有一个 Timeout 指令,我增加了它来解决我的问题。

上传大文件时,乘客还会做一件有趣的事情。
任何超过 8k 的内容都会写入 /tmp/passenger。如果 apache 没有权限在那里写,你也会得到 500 个错误。

这是这篇文章。
http://tinyw.in/fwVB

于 2011-12-18T20:52:21.390 回答