Azure 存储 API 内容处置

Posted

技术标签:

【中文标题】Azure 存储 API 内容处置【英文标题】:Azure Storage API ContentDisposition 【发布时间】:2014-01-10 06:16:17 【问题描述】:

我看到 Azure 在其 api 版本 3.0 中发布了 blob 的 ContentDisposition 属性:http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.blob.blobproperties.contentdisposition(v=azure.10).aspx。我已经在现有的 blob 上设置了该属性,但是在下载它们时,响应中不包含 content-disposition 标头。

我已经验证,当我从 Azure 获取该 Blob 的属性时,ContentDisposition 属性实际上已被填充。

在使用 SAS 时确实有效,但在没有 SAS 的情况下下载文件时无效。

如果有人有见解,请告诉我。

【问题讨论】:

【参考方案1】:

您能否查看DefaultServiceVersion 以获取您的存储帐户?对于Content-Disposition 工作,我相信DefaultServiceVersion 应该是2013-08-15

获取DefaultServiceVersion

    var cloudStorageAccount = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), false);
    var serviceProperties = cloudStorageAccount.CreateCloudBlobClient().GetServiceProperties();
    var serviceVersion = serviceProperties.DefaultServiceVersion;

设置 DefaultServiceVersion:

    var cloudStorageAccount = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), false);
    var serviceProperties = cloudStorageAccount.CreateCloudBlobClient().GetServiceProperties();
    serviceProperties.DefaultServiceVersion = "2013-08-15";
    cloudStorageAccount.CreateCloudBlobClient().SetServiceProperties(serviceProperties);

一旦你设置了DefaultServiceVersion,它应该可以工作了。

【讨论】:

您好 Gaurav,您知道如何重置服务版本级别吗?我的 BLOB 帐户的当前级别为“空”。当我看到 serviceProperties.DefaultServiceVersion。如果将来出现问题,我只是想要一种将其重置为 null 的方法。我尝试通过代码将其重置为空,但它不起作用。

以上是关于Azure 存储 API 内容处置的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 存储帐户表中存储 API 密钥/密码

如何为单个 azure blob 请求设置内容处置?

哪个数据存储(数据库)应该用于带有 AZURE 的 Spring-boot REST API 应用程序

向 Azure Blob 存储发出 GET 请求时授权失败 [REST API][Azure Blob 存储]

当有文件存储在 Azure Blob 存储中时触发 API 终结点

Django rest 框架 - 将图像上传到 Azure 存储