0
votes

As it seems, Azure now has an option to publicly serve the contents of Blob storage via HTTP, mainly intended for static websites. It is rather new and currently tagged as "preview".

I'd like to store binary releases (about 3 GB each version) of a game on Azure storage, and allow players to perform a differential update to any version using a zsync-like algorithm. For this way to work, it is crucial to be able to downloaded only specified chunks of a large file. Normally, this is achieved over HTTP by sending a multipart byteranges GET request.

The question is: is it possible to enable HTTP requests with multiple byteranges on the Azure "static website"?

UPDATE: As Itay Podhajcer mentioned, I don't need the "static website" feature for serving my blob storage over HTTP, I can directly open my storage container for public. However, multipart byteranges requests do not work with direct access to blob storage too.

2

2 Answers

1
votes

The Azure Static Website service is intended more for Single Page Applications (such as Angular and React apps).

If you only need to store binary content to be downloaded by clients, I think you should be fine using the "regular" Blob container. To specify the a range header on a GET request, you can follow Specifying the Range Header for Blob Service Operations.

Hope it helps!

0
votes

I managed to get multipart byteranges working by using CDN. The full list of actions is:

  1. Screw "static website" feature: as Itay Podhajcer wrote, it is absolutely unnecessary.
  2. Upgrade DefaultServiceVersion using Cloud Shell, as said here (to ensure that Accept-Ranges is included in HTTP headers).
  3. Enable "Standard Akamai" CDN to serve Blob Storage directly.

After that I can send multipart byteranges requests to the CDN endpoint, and it gives back multipart response with exactly the data I requested.