1

我正在构建一个 ASP.NET Azure Web 应用程序(Web 角色),它控制对存储在 Azure Blob 存储中的文件的访问。在 GET 请求中,我的 HttpHandler 对用户进行身份验证,并在很短的时间内(比如 30 分钟)为这个特定的文件和用户创建一个共享访问签名。客户端是一个媒体播放器,它使用 HEAD 检查更新的媒体文件,如果 Last-modified 标头不同,它将发出 GET 请求。因此,我不想创建 SAS url,而是返回 LAst-modified、Etag 和 Content-length 标头以响应 HEAD 请求。这是不好的做法吗?如果文件是最新的,则无需再次下载文件,因此无需创建 SAS url。

示例请求:

GET /testblob.zip
Host: myblobapp.azurewebsites.net
Authorization: Zm9v:YmFy

回复:

HTTP/1.1 303 See other
Location: https://myblobstorage.blob.core.windows.net/blobcontainer/testblob.zip?SHARED_ACCESS_SIGNATURE_DATA

有什么想法吗?

4

1 回答 1

0

是否有特定的理由强制客户端首先发出 HEAD 请求?它可以改为使用您的服务进行身份验证,获取 SAS 令牌,使用 If-Modified-Since 标头针对 Azure 存储发出 GET 请求,并且仅在上次下载后修改后才下载 blob。有关 Azure 存储 Blob 服务支持的条件标头的详细信息,请参阅为 Blob 服务操作指定条件标头。

于 2014-10-01T03:26:47.447 回答