[英]Amazon CloudFront doesn't require me to invalidate objects
我有一个ruby on rails应用程序,用户可以在其中上传他们的头像或进行更改。 首先,我将图像存储在Amazon s3中,但是后来我意识到内容内容的放送速度很慢,因此决定使用Amazon cloudfront。
上传和获取头像没有问题。 但是,我可以看到更新的照片会立即更改,但我希望通过Cloudfront API使它无效。 上载图像会花费很多时间。
在这一点上,我无法确定我是否正确使用了Cloudfront。
这是我在config / initializer中的carrierwave.rb文件:
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: 'key',
aws_secret_access_key: 'value',
region: 'us-east-1'
}
config.storage :fog
config.asset_host = 'http://images.my-domain.com'
config.fog_directory = 'bucket_name'
config.fog_public = true
config.fog_attributes = { cache_control: "public, max-age=315576000" }
end
我看不到我想念的东西吗? 如何确保我正确使用了Cloudfront?
谢谢。
您的图像没有存储在CloudFront中,而是通过CloudFront的CDN提供。
通过CF首次请求提供图像的请求如下所示:
Browser -> CloudFront -> S3
|
Browser <- CloudFront <-
对图像的第二个请求如下所示:
Browser -> CloudFront
|
Browser <-
第二个请求从未命中CF,因为CF已缓存该URL的结果。
现在,您的头像的立即更新很可能是因为它已被上传到S3并生成了一个新的URL,因此立即进行了更新。 这就是您希望它工作的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.