当我尝试将Cloudfront用作我的CDN时,该网址错误地包含了诸如
之类的存储桶名称cloudfronturl.net/bucketname/pathToImage
而不是
cloudfronturl.net/pathToImage
在我的图片模型上
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
:url => ':s3_domain_url',
:s3_host_name => ENV['CLOUDFRONT_URL']
}
我可以尝试在图片网址上使用gsub来替换['AWS_BUCKET']+"/"
,但有没有办法配置我的cloudfront或回形针自动执行此操作?
答案 0 :(得分:2)
这是一个非常愚蠢的错误。 url,路径和主机别名需要与s3_credentials
处于同一级别:url => ':s3_alias_url',
:s3_host_alias => ENV['CLOUDFRONT_URL'],
:path => ":attachment/:id/:style.:extension",
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
答案 1 :(得分:0)
好像你没有在Paperclip配置中指定路径。你可能需要这样的东西
path: '/images/folder_name/:id/:style.:extension',
这就是我所做的,从未遇到过您使用Cloudfront指定的问题,我一直都在使用它。