因爲無法將文件上傳到Heroku應用程序。Rails - 是否可以給外部圖像一個本地URL?
我正在使用Amazon S3存儲服務器獲取圖像。
問題在於圖片網址是針對Amazon S3服務器的。
我想它是代替mydomain.com/myimage.png
s3.amazon.com/bucket/myimage.png
怎麼可能訪問例如,當表現出的Amazon S3服務器上的圖像:mydomain.com/myimage.png
?
因爲無法將文件上傳到Heroku應用程序。Rails - 是否可以給外部圖像一個本地URL?
我正在使用Amazon S3存儲服務器獲取圖像。
問題在於圖片網址是針對Amazon S3服務器的。
我想它是代替mydomain.com/myimage.png
s3.amazon.com/bucket/myimage.png
怎麼可能訪問例如,當表現出的Amazon S3服務器上的圖像:mydomain.com/myimage.png
?
您可以創建一個機架中間件,它將在url(/ images/*或* .png)中查找一個模式,並且在匹配時它將作爲代理,請求S3中的圖像併爲它收到的內容。
請確保您正確設置緩存標頭,以便Heroku的反向代理將緩存並快速提供。
我的解決辦法,我只能用png圖片:
在路線:
match "/images/vind/:style/:id/:basename.png" => "public#image_proxy"
在公共控制器:
def image_proxy
image_url = "http://s3-eu-west-1.amazonaws.com/konkurrencerher#{request.path}"
response.headers['Cache-Control'] = "public, max-age=#{84.hours.to_i}"
response.headers['Content-Type'] = 'image/png'
response.headers['Content-Disposition'] = 'inline'
render :text => open(image_url, "rb").read,
end