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 回答
我的终点是在新加坡,我不得不添加以下内容:
你确定你的水桶是公开的吗?
我问,因为打开上面的链接时显示的消息节点的值是:指定的存储桶不存在
我记得很久以前遇到过类似的问题,事实证明我是通过Paperclip(以及CarrierWave)将图像上传到我的S3存储桶,但从未将我的存储桶设置为“公共” . 图像/文件将显示在我的S3控制台中,但没有人可以查看它们 .
您可能希望在S3控制台中检查存储桶权限/公共状态 . https://console.aws.amazon.com/s3