0

编辑

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

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

我已经在 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 应用程序中显示它们。为图像生成的 url 是:

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

除了之后的部分之外,这似乎是正确的?不知道指的是什么。

4

2 回答 2

1

我的终点在新加坡,我必须添加以下内容:

:s3_host_name => "s3-ap-southeast-1.amazonaws.com"
于 2013-09-10T14:49:36.697 回答
0

您是否确保您的存储桶是公开可用的?

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

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

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

于 2013-05-13T18:18:16.850 回答