回形针包括cloudfront url中的存储桶名称

时间:2014-03-27 04:14:09

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

当我尝试将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或回形针自动执行此操作?

2 个答案:

答案 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指定的问题,我一直都在使用它。