有没有什么办法来更新存储在Amazon CloudFront的(亚马逊的CDN服务)的文件? 好像它不会占用我们做一个文件的任何更新(比如删除文件,并像以前存储的新的使用相同的文件名)。 我必须明确地触发更新过程,从边缘服务器中删除这些文件以获得发布的新文件内容?
谢谢你的帮助
有没有什么办法来更新存储在Amazon CloudFront的(亚马逊的CDN服务)的文件? 好像它不会占用我们做一个文件的任何更新(比如删除文件,并像以前存储的新的使用相同的文件名)。 我必须明确地触发更新过程,从边缘服务器中删除这些文件以获得发布的新文件内容?
谢谢你的帮助
亚马逊加入失效特征。 这是API参考 。
从API参考示例请求:
POST /2010-08-01/distribution/[distribution ID]/invalidation HTTP/1.0
Host: cloudfront.amazonaws.com
Authorization: [AWS authentication string]
Content-Type: text/xml
<InvalidationBatch>
<Path>/image1.jpg</Path>
<Path>/image2.jpg</Path>
<Path>/videos/movie.flv</Path>
<CallerReference>my-batch</CallerReference>
</InvalidationBatch>
下面是我如何做到这一点使用CloudFront的控制面板。
例如:
它通常需要10到15分钟才能完成你的无效要求,根据您的请求的大小。
一旦完成了说你是好去。
提示:一旦你创建了一些废票,如果你回来,需要无效相同的文件使用选择框, 复制将变得可用使它更快。
设置TTL = 1小时,更换
http://developer.amazonwebservices.com/connect/ann.jspa?annID=655
下载云莓浏览器免费版本要做到这一点对单个文件: http://blog.cloudberrylab.com/2010/08/how-to-manage-cloudfront-object.html
Cyberduck的Mac和Windows提供的对象无效的用户界面。 请参阅http://trac.cyberduck.ch/wiki/help/en/howto/cloudfront 。
我似乎记得上serverfault看到这个了,但这里的答案:
通过“亚马逊CDN”我想你的意思是“CloudFront的”?
它的缓存,所以如果你需要它,现在被更新(而不是“新版本将在24小时可见”),你必须选择一个新的名字。 相反,为“Logo.png”的,用为“Logo.png - 0”,然后使用为“Logo.png - 1”进行更新,并改变你的HTML指向这一点。
有没有办法“刷新”亚马逊CloudFront的。
编辑 :这是不可能的,这是现在。 看评论这种回答。
CloudFront的用户界面提供的该下的[I]按钮>“分发设置”,标签“失效通知”: https://console.aws.amazon.com/cloudfront/home#distribution-settings
在Ruby中,使用雾宝石
AWS_ACCESS_KEY = ENV['AWS_ACCESS_KEY_ID']
AWS_SECRET_KEY = ENV['AWS_SECRET_ACCESS_KEY']
AWS_DISTRIBUTION_ID = ENV['AWS_DISTRIBUTION_ID']
conn = Fog::CDN.new(
:provider => 'AWS',
:aws_access_key_id => AWS_ACCESS_KEY,
:aws_secret_access_key => AWS_SECRET_KEY
)
images = ['/path/to/image1.jpg', '/path/to/another/image2.jpg']
conn.post_invalidation AWS_DISTRIBUTION_ID, images
甚至失效,它仍然需要5-10分钟无效处理并刷新所有亚马逊边缘服务器
CrossFTP为Win,Mac和Linux提供CloudFront的失效的用户界面,检查此了解更多详情: http://crossftp.blogspot.com/2013/07/cloudfront-invalidation-with-crossftp.html