1
我正在构建一个控制对存储在Azure Blob存储中的文件的访问的ASP.NET Azure Web应用程序(Web角色)。 在GET请求上,我的HttpHandler对用户进行身份验证,并为该特定文件和用户创建一个短时间帧(例如30分钟)的共享访问签名。客户端是一个媒体播放器,它使用HEAD检查更新的媒体文件,如果最后修改的标头不同,它将发出GET请求。因此,我不想创建SAS网址,而是响应HEAD请求返回LAst修改,Etag和内容长度标头。这是不好的做法吗?如果文件是最新的,则不需要再次下载文件,因此不需要创建SAS网址。“303其他”在HTTP HEAD响应中
实施例请求:
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
任何想法?
客户端是专有(关闭)设备,我无法修改客户端软件。 – user3336731 2014-10-02 06:02:35
我实现了服务,以便HEAD请求返回最后修改的头(客户端设备期望的),以便它可以确定是否发出GET请求。在GET请求中,我生成SAS令牌并重定向到azure blob服务。它效果很好。问题是:有更好的方法吗?我有我的数据库中的所有文件元数据,所以我不需要连接到Azure的HEAD请求。 – user3336731 2014-10-02 06:08:11