I use Azure Blob storage to store media files and provide access to these files using shared signatures; everything works well in this regard.
However, I have a client application that should โresumeโ access to these files and does this using the HTTP RANGE header. When he makes such a request, he is unhappy with the result that he returns from Azure.
I'm not sure how to view the details on the Azure side to check if the request failed, or simply returned what the client did not expect, and I do not have debug visibility in the client.
Here's what the header of the incoming range looks like:
RANGE: bytes=4258672-
From the Azure documentation I read, it seems to support RANGE headers, however, I wonder if there is a conflict using RANGE and sharing signatures together?
Update: It appears that Azure may return an invalid status code for RANGE requests, which causes my client applications to reject the response. The documentation says that Azure will respond with an HTTP status code of 206 when responding to a RANGE request, however, when I issue a RANGE request as follows:
curl -I -H "User-Agent: Bonos" -r 500- "https://murfie.blob.core.windows.net/168464/1.mp3?st=2013-07-03T16%3A34%3A32.4832235Z&se=2013-07-03T17%3A34%3A32.4613735Z&sr=b&sp=r&sig=mJgQGW%2Fr3v8HN2%2BVV3Uady7J68nFqeHyzQb37HAhfuE%3D"
Azure returns the following:
HTTP/1.1 200 OK Content-Length: 19988911 Content-Type: application/octet-stream Charset=UTF-8 Last-Modified: Fri, 07 Jun 2013 16:44:50 GMT ETag: 0x8D031B57670B986 Server: Blob Service Version 1.0 Microsoft-HTTPAPI/2.0 x-ms-request-id: 77312761-65a9-42ef-90cd-ff718a80b231 Date: Wed, 03 Jul 2013 16:41:01 GMT
jasongullickson
source share