【发布时间】:2016-10-23 22:25:56
【问题描述】:
我正在使用回形针将照片加载到 heroku 网站。我没有收到任何错误,并且我的对象已创建,但我没有照片。 我正在使用的 gem 版本是:
gem 'paperclip', '~> 4.3', '>= 4.3.6'
gem 'aws-sdk', '< 2.0'
我的配置设置都是正确的,而且我在俄勒冈地区,所以我将 AWS_REGION 设置为“us-west-2”。 我相信我的 production.rb 设置正确,
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'),
}
}
而我应该有照片的公司模特是
class Company < ActiveRecord::Base
has_attached_file :logo_image, styles: { medium: "300x300>",
thumb: "100x100>" },
:default_url => ActionController::Base.helpers.asset_path("noimage1.jpg")
在我的 Heroku 日志中:
[paperclip] saving /companies/logo_images/000/000/743/original/baking.jpg
[AWS S3 200 0.218362 0 retries] put_object(:acl=>:public_read,
:bucket_name=>"mybucketname", :content_length=>64071,
:content_type=>"image/jpeg",
:data=>Paperclip::UploadedFileAdapter: baking.jpg,
:key=>"companies/logo_images/000/000/743/original/baking.jpg")
我以这种方式将图像渲染到我的展示页面:
<%= image_tag(@company.logo_image.url(:medium)) %>
在我看来,我的照片正在保存到存储桶中,但由于某种原因它没有呈现到页面。
【问题讨论】:
-
能否上传用于在视图中显示图像的代码?
-
我更新了相关代码。
-
当我第一次设置 AWS 时,真正帮助我的是,如果您进入 AWS 控制台并查看图像,您可以在右侧的 ti 属性中获取该图像的 url。如果您还没有,请检查页面并确保它首先与视图中的内容匹配,然后从那里开始调试。还是您已经尝试过这样做?
-
我刚刚发现了问题,但感谢您的提示。我会在以后使用它。
标签: ruby-on-rails heroku amazon-s3