因为无法将文件上传到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