我在rails应用程序上有一个ruby用户可以上传他们的头像或更改它。首先,我将图像存储在亚马逊s3中,但随后我意识到内容内容正在缓慢提供,并决定使用亚马逊云端。
上传和获取头像没有问题。但是,我可以看到更新的照片立即更改,但我希望通过cloudfront api使其无效。上传图片需要花费大量时间。
此时我无法正确判断是否正确使用云端。
这是我在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?
感谢。
答案 0 :(得分:1)
您的图片未存储在CloudFront中,而是通过CloudFront的CDN提供。
通过CF提供图像的第一个请求如下:
Browser -> CloudFront -> S3
|
Browser <- CloudFront <-
对图像的第二个请求看起来像这样:
Browser -> CloudFront
|
Browser <-
第二个请求永远不会命中CF,因为CF缓存了该URL的结果。
现在,您的头像立即更新可能只是因为它被上传到S3并导致新的URL,因此立即更新。这就是你希望它的工作方式。