亚马逊S3没有显示图像

时间:2013-05-12 18:10:07

标签: ruby-on-rails amazon-s3 paperclip

修改

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

您尝试访问的存储区必须使用指定的端点进行寻址。请将以后的所有请求发送到此端点。

我在config / environments / staging.rb

中设置了回形针配置
  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 个答案:

答案 0 :(得分:1)

我的终端位于新加坡,我不得不添加以下内容:

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

答案 1 :(得分:0)

您确定您的水桶是否公开?

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

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

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