修改
当我按照生成的链接时,它链接到以下错误:
您尝试访问的存储区必须使用指定的端点进行寻址。请将以后的所有请求发送到此端点。
我在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
除了之后的部分似乎是正确的?我不知道是指什么。
答案 0 :(得分:1)
我的终端位于新加坡,我不得不添加以下内容:
:s3_host_name => "s3-ap-southeast-1.amazonaws.com"
答案 1 :(得分:0)
您确定您的水桶是否公开?
我问,因为打开上面的链接时显示的消息节点的值是:指定的存储桶不存在
我记得很久以前遇到过类似的问题,事实证明我是通过Paperclip(以及CarrierWave)将图像上传到我的S3存储桶,但从未将我的存储桶设置为“公共”。图像/文件将显示在我的S3控制台中,但没有人可以查看它们。
您可能希望在S3控制台中检查存储桶权限/公共状态。 https://console.aws.amazon.com/s3