Azure Blob Storage を使用してメディア ファイルを保存し、Shared Access Signatures を使用してこれらのファイルへのアクセスを提供しています。この点ですべてがうまくいっています。
ただし、これらのファイルへのアクセスを「再開」する必要があり、HTTP RANGE ヘッダーを使用してそれを行うクライアント アプリケーションがあります。このような要求を行うと、Azure から返される結果に満足できません。
Azure 側で詳細を表示して、要求が失敗したかどうか、またはクライアントが予期しないものを返しただけかどうかを確認する方法がわかりません。また、クライアントに対するデバッグの可視性もありません。
着信範囲ヘッダーは次のようになります。
RANGE: bytes=4258672-
私が読んだ Azure のドキュメントからは、RANGE ヘッダーをサポートしているように見えますが、RANGE と Shared Access Signature を一緒に使用すると競合が発生するのではないかと思っています。
更新: Azure が RANGE 要求に対して正しくないステータス コードを返している可能性があり、それが原因でクライアント アプリが応答を拒否しているようです。ドキュメントには、RANGE 要求に応答するときに Azure が HTTP ステータス コード 206 で応答すると記載されていますが、次のような RANGE 要求を発行すると、次のようになります。
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 は次を返します。
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