【问题标题】:Paperclip+S3 works locally, not on HerokuPaperclip+S3 在本地工作,而不是在 Heroku 上
【发布时间】:2012-01-31 15:52:19
【问题描述】:

在生产环境中运行时,我将我的应用程序配置为使用 S3 而不是本地文件系统来存储 Paperclip 文件。它在我的本地机器上运行良好(回形针将附件存储在我的 S3 存储桶中)。

在 Heroku 上,它不起作用,而且行为很奇怪:

如果用户注册并附上个人资料图片并点击提交,我收到一条错误消息:

1 error prohibited this user from being saved:
There were problems with the following fields: 

Avatar content type is not one of image/jpg, image/jpeg, image/png, image/gif 

而上传的图像格式正确,并且在没有 Heroku 的情况下运行回形针+s3 时可以正常处理...

Heroku 日志什么也没说...

我已经设置了heroku vars:heroku config:add bucket、access_key 和secret_key。

我是不是忘记了什么?

非常感谢您的帮助!

【问题讨论】:

  • 我没有使用回形针的经验。但是在heroku上你不能在文件系统上写,所以你必须告诉回形针使用heroku上唯一的可写目录。

标签: ruby-on-rails heroku amazon-s3 paperclip


【解决方案1】:

好吧……猜错了……实际上不是 Heroku 的错,而是 Internet Explorer 将 'image/jpeg' 文件转换为 'image/pjpeg' (即使 jpg 不是渐进式的)并转换 'image/ png' 转换成 'image/x-png' 内容类型...

在我的本地机器上进行的测试是用 Mozilla 完成的,而在 Heroku 上的测试是用 IE 完成的,这就解释了为什么我认为是 Heroku ...

在 Chrome 和 Mozilla 上一切正常,但如果您使用 Internet Explorer,请务必将“image/pjpeg”、“image/pjpg”和“image/x-png”添加到您接受的图像格式列表中验证!

【讨论】:

  • 感谢您添加解释!帮助我们记住将苹果与苹果进行比较,或者在这种情况下,将 IE 与 IE 进行比较!
【解决方案2】:

这看起来内容类型由于某种原因没有被验证为正确。如果您在本地以生产模式运行应用程序,这也应该会失败(从而将 Heroku 排除在等式之外)

【讨论】:

  • 我确认在本地运行应用程序模式没有任何错误(.jpg图像保存在S3目录下,一切顺利),并且仅在运行应用程序时验证失败在 Heroku ...
猜你喜欢
  • 2016-05-23
  • 2016-05-08
  • 2013-10-31
  • 2020-12-20
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
相关资源
最近更新 更多