【问题标题】:Multipart byteranges on Azure static websiteAzure 静态网站上的多部分字节范围
【发布时间】:2018-12-01 21:24:03
【问题描述】:

看起来,Azure 现在可以选择通过 HTTP 公开提供 Blob 存储的内容,主要用于static websites。它是相当新的,目前标记为“预览”。

我想在 Azure 存储上存储游戏的二进制版本(每个版本大约 3 GB),并允许玩家使用类似zsync 的算法对任何版本执行差异更新。要使这种方式工作,能够仅下载大文件的指定块至关重要。通常,这是通过 HTTP 发送 multipart byteranges GET request 来实现的。

问题是:是否可以在 Azure“静态网站”上启用具有多个字节范围的 HTTP 请求?

更新:正如 Itay Podhajcer 提到的,我不需要“静态网站”功能来通过 HTTP 提供我的 blob 存储,我可以直接公开我的存储容器。但是,多部分字节范围请求也适用于对 blob 存储的直接访问。

【问题讨论】:

    标签: azure http webserver


    【解决方案1】:

    Azure 静态网站 服务更适用于 单页应用程序(例如 AngularReact 应用程序)。

    如果您只需要存储要由客户端下载的二进制内容,我认为使用“常规”Blob 容器应该没问题。 要在 GET 请求中指定范围标头,您可以关注 Specifying the Range Header for Blob Service Operations

    希望对你有帮助!

    【讨论】:

    • 我是否理解正确,我可以在公共 HTTP 地址上提供 Blob 存储的内容,而且我什至不需要“静态网站”的东西?这很奇怪。事实上,我看不出为浏览器提供静态 html+js+jpg+mp3 和为下载提供二进制内容之间有什么区别。
    • 静态网站对相关的 mime 类型具有开箱即用的支持(因为您不想在用户访问您的 SPA 时触发下载,此外,它应该具有处理路由的功能正确。您应该能够将容器设置为可从 Internet 访问(在内容级别甚至整个容器级别)。
    【解决方案2】:

    我设法通过使用 CDN 使多部分字节范围工作。 完整的操作列表是:

    1. 搞砸“静态网站”功能:正如 Itay Podhajcer 所写,绝对没有必要。
    2. 使用 Cloud Shell 升级 DefaultServiceVersion,如 here 所述(以确保 Accept-Ranges 包含在 HTTP 标头中)。
    3. 启用“标准 Akamai”CDN 以直接提供 Blob 存储。

    之后我可以向 CDN 端点发送多部分字节范围请求,它会返回包含我请求的数据的多部分响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2021-05-05
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多