use*_*131 8 azure content-disposition azure-storage azure-blob-storage
我对 Azure 博客存储 V2 中文件的“内容处置”blob 属性有疑问。
我在 Azure 门户中使用 Azure 存储资源管理器 1.6.2(参见屏幕截图)asn 将文件 howto-201901.pdf 的此属性配置为“attachment; filename=howto.pdf”。该属性在文件中设置,但在下载时不作为标头信息提供。
用以前的存储V1,是没有问题的。如果我下载了文件 howto-2010901.pdf,则 http 标头内容处置已设置,并且浏览器下载了该文件,就像我的配置 howto-pdf 一样。
但自从两三个月以来,也许自从我升级到存储 V2 以来,这个功能就不起作用了。浏览器以原始名称下载文件。
有没有人有信息可以帮助我解决这种行为?
最佳蒂诺
当下载 URL 未经身份验证时,不会发送响应中的Content-Disposition标头。供客户端接收Content-Disposition
这是一个可能的解决方案并且对我有用。
您是否可以从 Blob 存储中获取现有策略,而不是创建新策略。请参阅https://learn.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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2356 次 |
| 最近记录: |