【问题标题】:Route 53 and Cloudfront removing Accept-Ranges: bytes header from s3?Route 53 和 Cloudfront 从 s3 中删除 Accept-Ranges: bytes 标头?
【发布时间】:2019-10-28 13:13:00
【问题描述】:

我有一个奇怪的问题。我在 s3 上托管了一个静态主机,然后域由 Route 53 管理。

如果我通过 amazons3 地址从我的站点请求视频,则响应包括 Accept-Ranges: bytes 标头,这是我流畅播放视频所需的。

但是,如果我从 cloudfront 分发中访问相同的资源,它具有除 Accept-Ranges: bytes 标头之外的所有标头。

另外,如果我通过一个通过 Route 53 指向 S3 存储桶的 URL 访问该站点,它也会丢失标头。

似乎获取 Accept-Ranges: bytes 的唯一方法是通过直接链接到 s3 资源 URL。

我想从云端而不是 s3 分发文件,有没有办法将 Accept-Ranges: bytes 标头添加到文件的云端版本(没有 lambda 函数,因为这似乎过于复杂,整个静态托管的原因是没有服务器功能)。

谢谢!

【问题讨论】:

    标签: amazon-s3 amazon-route53


    【解决方案1】:

    CloudFront 不会从响应中删除 Accept-Ranges 标头,这是您在响应中看不到此标头的原因,因为您将 S3 静态网站端点作为 CloudFront 的来源。

    S3提供2个端点(传输加速端点除外):

    1. REST API 端点,可以使用 bucket.s3.region.amazonaws.com 或 s3.region.amazonaws.com/bucket/object 访问

    2. 作为 bucket.s3-website.region.amazonaws.com 访问的 S3 静态网站端点

    两者都支持范围请求,但是,静态网站端点不会在响应标头中添加 Accept-Ranges,而是 REST API 会添加它。

    您需要从 CLoudFront 源的下拉菜单中选择 S3 存储桶以使其正确。

    【讨论】:

    • 一旦在云端进行了更改,使缓存失效以使其生效。
    猜你喜欢
    • 2021-05-13
    • 2020-02-01
    • 2013-02-17
    • 2015-04-20
    • 2014-08-12
    • 2018-01-22
    • 2021-05-30
    • 2021-01-05
    • 2020-11-28
    相关资源
    最近更新 更多