在iOS上强制更新Amazon CloudFront

时间:2013-02-21 11:41:20

标签: ios amazon-web-services amazon-s3 amazon-cloudfront

我正在将Amazon S3与Amazon CloudFront结合使用,基本上在我的应用程序中我有一个更新S3对象的方法,基本上我使用CloudFront获取S3对象,我对数据进行了更改,然后我重新加载它相同的密钥 - 基本上替换/更新文件/对象。

但是,CloudFront似乎并没有随S3一起更新(确实如此,但我的用户没有全天),有没有办法强制进行CloudFront内容更新?显然你可以使它失效,是否有iOS SDK方法呢?

1 个答案:

答案 0 :(得分:2)

我不知道有办法通过iOS SDK发出CloudFront失效请求。您可能需要构建自己的方法来针对AWS API制定请求。

但我建议你采取另一种方法。失效请求是昂贵的操作(相对于其他Cloudfront成本)。您可能不希望将其留给您的用户,以便能够通过应用程序针对CloudFront发起无限量的无效请求。您还将遇到可以拥有的并发失效请求数量限制。最好的方法是实际实现文件名版本控制方案,以便以编程方式为每个修订版更改文件名。然后,您将在每个版本的Cloudfront中引用新URL,从而无需等待缓存刷新或执行失效。此外,这将为图像提供更快的响应可用性,因为无效请求可能需要一段时间才能处理。

请注意以下CloudFront常见问题解答:

  

Q值。我可以提出的无效请求数量是否有限制?       您可以使无效的文件总数没有限制;但是,您发出的每个失效请求最多可包含1,000个文件。此外,您在任何给定时间只能处理3个失效请求。如果超过此限制,则进一步的失效请求将收到错误响应,直到其中一个先前的请求完成。您应该仅在意外情况下使用无效;如果您事先知道需要经常从缓存中删除文件,建议您为文件实施版本控制系统和/或设置较短的有效期。