Chi*_*iya 5 heroku amazon-s3 ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我有使用Amazon S3将图像发布到存储桶中的应用程序部署到heroku的应用程序。但是,当获取相同的图像时,会出现错误:
Errno::ENOENT (No such file or directory showing path s3.amazonaws.com/bucket_name/app/public/messages/images/000/000/061/thumb/images.jpeg?1362410115)
Run Code Online (Sandbox Code Playgroud)
无法在浏览器的URL中进行相同的路径复制和粘贴。如果我将存储桶名称用作终点,则可以使用以下路径
/bucket_name.s3.amazonaws.com/app/public/messages/images/000/000/061/thumb/images.jpeg?1362410115.
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在我的模型中配置此URL。我正在按照heroku的方式配置aws-sdk。
https://devcenter.heroku.com/articles/paperclip-s3
Run Code Online (Sandbox Code Playgroud)
模型has_attached_file似乎我在这里缺少什么。有关其余的配置,请检查上面的链接。
has_attached_file :image, :styles => { :medium => "100x100>", :thumb => "100x100>" }
Run Code Online (Sandbox Code Playgroud)
谢谢
在 config/initializers/paper_clip.rb 中包含给定的代码解决了我的问题。
Paperclip::Attachment.default_options.merge!(
:url => ':s3_domain_url',
:path => 'app/public/:class/:attachment/:id_partition/:style/:filename'
)
Run Code Online (Sandbox Code Playgroud)