上传到s3时的图像损坏,仅限生产。 (载波,发动机厂)

时间:2012-02-10 23:12:48

标签: ruby-on-rails amazon-s3 carrierwave corruption engineyard

我正在使用carrierwave将图像上传到亚马逊s3。这在开发上非常有用,但是当我将它推送到我的服务器(发动机场云试用版)时却没有。

该过程正常,不会抛出任何错误,并返回一个链接。但是,不知何故,实际图像已损坏。

这是一个,例如:https://s3.amazonaws.com/ZenBucket/uploads/goal/photo/30/guinness-toucan.jpg

任何人都可以告诉我它是如何被破坏的,或者它可以做什么?

编辑:部署后的第一次图像上传尝试似乎总是失败500,但错误没有显示在日志中。不确定这是否相关。

Edit2:似乎也发生了蜻蜓宝石而不是载波。

由于

3 个答案:

答案 0 :(得分:0)

如果它仅在部署后的第一个映像上发生,我会怀疑你的应用程序仍在加载(或者至少是一些工作者),导致高CPU使用率并减慢上传过程,这可能会使其超时并且同时破坏图像。

我认为Engine Yard只会在第一次请求时重新加载您的应用,这可能就是原因。您应该在部署后尝试“卷曲”您的应用程序并等待几分钟,看看是否有帮助。

EC2上的小实例只有一个核心,并且在重启许多工作人员时会变得非常慢。

答案 1 :(得分:0)

完成EngineYard的carrierwave / fog设置,如下所述: http://www.engineyard.com/blog/2011/a-gentle-introduction-to-carrierwave/ 和这里: http://docs.engineyard.com/use-carrierwave-and-optionally-fog-to-upload-and-store-files.html

你的“迷雾”公众是“假”还是“真”?如果它是“false”,请检查此线程,因为您需要使用“authenticated_url”属性而不是返回的内容: http://groups.google.com/group/carrierwave/browse_thread/thread/2f727c77864ac923

答案 2 :(得分:0)

jRuby(可能还有https)的gzip压缩似乎已经解决了。如果有人需要我的堆栈中的版本号,我可以帮忙。