图片已成功上传到aws s3存储桶,但未在我的网站

时间:2015-10-18 23:33:26

标签: ruby-on-rails ruby amazon-web-services heroku amazon-s3

我正在使用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": "*"
    }
]

}

以下是我网站上发布的截图:

enter image description here 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

1 个答案:

答案 0 :(得分:1)

我猜您的问题与您的政策有关。如果您将URL放在浏览器中,是否可以查看图像?

您也可以尝试以下政策。我对S3政策并不熟悉,但这对我来说很有用。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::wyattsbucket/*"
        }
    ]
}