2014-03-27 56 views
0

當我嘗試使用的Cloudfront作爲我的CDN的URL錯誤地包含鬥名鬥名稱,如回形針包括CloudFront的URL

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或paperclip自動執行此操作?

回答

2

這是一個非常愚蠢的錯誤。網址,路徑和主機別名需要與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'] 


} 
0

好像你沒有在你的Paperclip配置中指定路徑。您可能需要像這樣

path: '/images/folder_name/:id/:style.:extension', 

這是我做的,從來沒有遇到過的問題,你的Cloudfront指定,我用它所有的時間。