Azure Blob存储V2不再提供内容处置标头

时间:2019-01-15 22:08:16

标签: azure azure-storage azure-storage-blobs content-disposition

我对Azure Blog Storage V2中文件的“内容处置” blob属性有疑问。

我在Azure Portal中使用Azure Storage Explorer 1.6.2(请参见截图)将文件howto-201901.pdf的此属性配置为“ attachment; filename = howto.pdf”。该属性在文件上设置,但未作为下载时的标头信息提供。

使用先前的存储V1,这没有问题。如果我下载了文件howto-2010901.pdf,则设置了http标头的内容配置,浏览器下载了与我的配置howto-pdf类似的文件。

但是自从2个月或3个月以来,也许自从我升级到存储V2以来,此功能无法使用。浏览器将下载原始名称的文件。

有没有人向我提供解决此问题的信息?

最佳蒂诺

enter image description here

3 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案,对我有用。

除了创建新策略外,您还可以从Blob存储中提取现有策略吗?参见https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1

    private Uri GetDownloadUri(CloudBlockBlob blob)
    {
        try
        {
            // Return the SAS token.
            var query = GenerateSASQueryString(blob);

            UriBuilder newUri = new UriBuilder(blob.Uri)
            {
                Query = query
            };

            return newUri.Uri;
        }
        catch (UriFormatException ex)
        {
            Console.WriteLine(ex);
        }

        return blob.Uri;
    }

    private string GenerateSASQueryString(CloudBlockBlob blob)
    {
        if (blob == null)
            return null;

        // Create a new access policy for the account.
        SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddHours(24),
            SharedAccessStartTime = DateTimeOffset.UtcNow
        };

        // Return the SAS token.
        var query = blob.GetSharedAccessSignature(policy);
        return query;
    }

答案 1 :(得分:0)

我面临着同样的问题,但是我对.NET SDK和SharedAccessBlobPolicy感到非常困惑。

我正在使用Azure.Storage.Blobs12.4.1 SDK来管理存储。是否可以使用它来设置SharedAccessBlobPolicy,还是应该以其他方式进行设置?我尝试研究文档,但是并没有真正的帮助,我只能找到有关Microsoft.Azure.Storage.Blob SDK版本11的信息,该信息现已被认为是旧版并且已弃用。

答案 2 :(得分:0)

如果未验证下载URL,则不会发送

Content-Disposition 标头作为响应。为了使客户获得 Content-Disposition

  1. 创建访问权限受限的SAS令牌。
  2. 将其附加到blob下载链接。