我正在尝试在我的网络应用上使用亚马逊s3,但图像没有在Heroku上显示。我已经设置了正确的环境变量和AWS区域,但在上传图像后,我得到了一个破损的图像链接。当我登录到我的S3帐户时,图像正确上传并且图像显示但我不知道为什么它在Heroku中不起作用。这是我的代码:
配置/环境/ 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'),
}
}
视图/颜色/ index.html.erb
<p id="notice"><%= notice %></p>
<div class="center">
<div class="row">
<% @colors.each do |color| %>
<div class="col-md-3">
<div class="thumbnail">
<%= color.name %>
<%= image_tag color.image.url(:medium) %>
<%= color.code %><br>
<%= link_to 'Show', color %>
<%= link_to 'Edit', edit_color_path(color) %>
<%= link_to 'Destroy', color, method: :delete, data: { confirm: 'Are you sure?' } %>
</div>
</div>
<%end%>
</div>
<%= link_to 'New Color', new_color_path %>
的Gemfile
gem 'aws-sdk', '~> 2.3'