我正在使用Rails与Heroku和AWS S3来部署一个像我通过教程创建的类似网站的pinterest。用户可以成功将图像上传到我的s3存储桶。问题是,上传的图像应该显示在索引(和显示)中但不显示。
我创建了一个存储桶策略,因此启用了'getobject'方法。
{
"Id": "Policy1445210052484",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1445209989872",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::wyattsbucket/*",
"Principal": "*"
}
]
}
以下是我网站上发布的截图:
Heroku没有收到任何错误,所以我认为问题出在S3存储桶或我的Rails环境中。这是我的第一篇文章,请原谅业余格式,如果您有任何想法,请告诉我!
提前致谢。
= form_tag pins_path
views / pins / index.html.haml
#pins.transitions-enabled
- @pins.each do |pin|
.box.panel.panel-default
= link_to (image_tag pin.image.url), pin
.panel-body
%h2= link_to pin.title, pin
%p.user
Submitted by
= pin.user.email
模型/ pin.rb
class Pin < ActiveRecord::Base
acts_as_votable
belongs_to :user
has_attached_file :image, styles: { medium: "500x500>" }
validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
end
答案 0 :(得分:1)
我猜您的问题与您的政策有关。如果您将URL放在浏览器中,是否可以查看图像?
您也可以尝试以下政策。我对S3政策并不熟悉,但这对我来说很有用。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::wyattsbucket/*"
}
]
}