所以,我正在使用Paperclip和AWS-S3,这非常棒。而且效果很好。但是只有一个问题:我需要上传非常大的文件。超过50兆字节。所以,nginx死了。显然,Paperclip会在转到S3之前将内容存储到磁盘上吗?
我发现了这个really cool article,但它似乎也首先进入磁盘,然后在后台执行其他操作。
理想情况下,我可以在后台上传文件...我在使用PHP时有很少的经验,但到目前为止还没有Rails。甚至有人能指出我的方向吗?
答案 0 :(得分: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
答案 1 :(得分:5)
也许你必须增加nginx配置中的超时?
答案 2 :(得分:1)
您可能对我的帖子感兴趣:
http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip
它可以直接向S3上传多个文件(同时使用进度条),而无需点击服务器。
答案 3 :(得分:0)
我遇到了类似的问题,但使用了回形针,乘客和阿帕奇 像nginx一样,apache在apache中有一个Timeout指令,我为解决我的问题而增加了它。
乘客在上传大文件时也会有一件有趣的事情 超过8k的任何东西写入/ tmp / passenger。如果apache没有 在那里写权限你也会得到500个错误。
这是文章。
http://tinyw.in/fwVB