2

我需要从 S3 存储桶中以低容量提供大文件 (10-50GB)。我正在使用 CloudFront,因为我需要 Lambda@Edge 在请求到达 s3 存储桶之前对其进行检查。

此处的 AWS 文档中,我了解到我支付了将数据传出到 Internet 的费用。我还了解 CloudFront 缓存的最大对象大小为 20GB。

我的问题是:对于小于 20GB 的文件,缓存这些文件是否对 CloudFront 的成本/定价有任何影响?设置Cache-control标头是否no-cache意味着响应绕过 CloudFront?我认为在边缘服务器上缓存/存储文件必须有一些成本。

这里有一个类似的问题,但答案没有具体讨论缓存的成本/定价。

4

1 回答 1

3

对于小于 20 GB 的对象,无论您是否阻止 CloudFront 缓存它们(通常通过设置Cache-Control为 、 的任意组合privateno-cache或者no-store同时将最小 TTL 设置为默认值 0 ——尽管还有其他方法)都没有对定价的影响,因为 CloudFront 不对缓存存储收取任何费用。虽然这可能令人惊讶,但请记住,响应仅缓存在请求它们的边缘中,并且 CloudFront 的缓存是缓存,因此是短暂的,因此 CloudFront 可以丢弃不经常看到流量的缓存对象。

防止缓存不会绕过 CloudFront,因为 CloudFront 是处理整个请求的服务。它只是防止响应在返回给查看器时存储在缓存中。

您需要验证大于 20 GB 的对象是否可以正常工作。文件表明他们不会。

最大文件大小

CloudFront 将返回给查看器的响应正文的最大大小为 20 GB。这包括未指定 Content-Length 标头值的分块传输响应。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorS3Origin.html#ResponseS3MaxFileSize

于 2019-09-15T02:22:37.810 回答