【发布时间】:2016-09-22 13:49:49
【问题描述】:
我在 rails 应用程序中设置了回形针,这在本地和 heroku 上运行良好,但是在帖子中上传的图像仅在很短的时间内保存在 heroku 中。我设置了一个 AWS 帐户并创建了一个存储桶,然后按照文档将我的 rails 应用程序链接到 AWS 以显示使用回形针上传的图像。我在下面附上了代码 sn-ps。图片似乎可以很好地上传到 AWS,但是当我创建帖子时,它说我的帖子已成功创建,但是图片不显示,它只是显示为断开的链接。当我单击图像属性时,它是 AWS S3 url,在查看 heroku 日志时,没有已知问题。我不知道为什么图像不显示。
config/environments/production.rb 文件:
# sets paperclip to upload images to Amazon S3
# Variables directed to heroku via the command line for pw etc
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV.fetch('S3_BUCKET_NAME'),
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
s3_region: ENV.fetch('AWS_REGION'),
}
}
post.rb 模型文件:
class Post < ApplicationRecord
extend FriendlyId
friendly_id :title, use: [:slugged, :finders]
has_attached_file :image, styles: { medium: "600x", thumb: "100x" }
validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/
end
show.html.erb 文件:
<div class="image">
<%= image_tag @post.image.url(:medium) %>
</div>
我还使用以下方法正确设置了 heroku:
$ heroku config:set S3_BUCKET_NAME=your_bucket_name
$ heroku config:set AWS_ACCESS_KEY_ID=your_access_key_id
$ heroku config:set AWS_SECRET_ACCESS_KEY=your_secret_access_key
$ heroku config:set AWS_REGION=your_aws_region
任何帮助将不胜感激。
非常感谢
【问题讨论】:
标签: ruby-on-rails amazon-web-services heroku amazon-s3 paperclip