首页 文章

亚马逊S3没有显示图像

提问于
浏览
0

edit

当我按照生成的链接时,它链接到以下错误:

您尝试访问的存储区必须使用指定的 endpoints 进行寻址 . 请将所有将来的请求发送到此 endpoints .

我在config / environments / staging.rb中设置了paperclip配置

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['S3_BUCKET'],
      :access_key_id => ENV['S3_KEY'],
      :secret_access_key => ENV['S3_SECRET'],
      :path => "/image/:id/:filename",
      :url => ":s3_domain_url"
    }
  }

我为heroku staging env设置了我的env变量:

$ heroku config:set S3_BUCKET=staging_bucket --remote staging
$ heroku config:set S3_KEY=XXXXX --remote staging
$ heroku config:set S3_SECRET=XXXXX --remote staging

图像似乎正确上传,我可以在控制台中看到它们,但我无法在Web应用程序中显示它们 . 为图像生成的网址是:

http://s3.amazonaws.com/myapp-staging/assets/attachments/000/000/004/small/IMG_0902.JPG?1368381995

除了之后的部分似乎是正确的吗?我不知道是指什么 .

2 回答

  • 1

    我的终点是在新加坡,我不得不添加以下内容:

    :s3_host_name => "s3-ap-southeast-1.amazonaws.com"
    
  • 0

    你确定你的水桶是公开的吗?

    我问,因为打开上面的链接时显示的消息节点的值是:指定的存储桶不存在

    我记得很久以前遇到过类似的问题,事实证明我是通过Paperclip(以及CarrierWave)将图像上传到我的S3存储桶,但从未将我的存储桶设置为“公共” . 图像/文件将显示在我的S3控制台中,但没有人可以查看它们 .

    您可能希望在S3控制台中检查存储桶权限/公共状态 . https://console.aws.amazon.com/s3

相关问题