-2

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

但是,CloudFront 似乎没有与 S3 一起更新(确实如此,但我的用户没有一整天的时间),有没有办法强制 CloudFront 内容更新?显然您可以使其无效,是否有 iOS SDK 方法可以做到这一点?

4

1 回答 1

2

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

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

请注意 CloudFront 常见问题解答中的以下内容:

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

于 2013-02-21T17:20:29.507 回答