【发布时间】:2014-06-02 14:49:19
【问题描述】:
我最近将我的第一个 Rails 应用程序部署到 Heroku 上,并将其配置为将图像(通过 Paperclip)上传到 AWS S3,但我一直被此错误消息拒绝
"Image has an extension that does not match its contents"
我认为这是我在更改 100% 可运行的开发应用程序后添加的所有内容
models/single.rb
has_attached_file :image, :styles => {
:thumb => ["200x200"],
:medium => ["600x600>"],
:large => ["1200x1200>"] },
:default_url => "/images/:style/missing.png"
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
config/environments/production.rb
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
宝石文件
gem 'paperclip'
gem 'aws-sdk'
gem 'rmagick'
我尝试了几张图片,所有这些图片都是我在 Photoshop 中以正确的内容类型和扩展名导出的,所以我认为错误消息不是问题所在。
上周我刚开始使用 Ruby/Rails/AWS/Heroku,很抱歉我对这些主题缺乏了解
【问题讨论】:
-
啊,是的!降级工作!现在从 AWS 收到一个 XML 错误,但这可能是因为我在尝试解决这个问题时搞砸了链接。非常感谢!
标签: ruby-on-rails heroku amazon-web-services imagemagick paperclip