如何使用 .NET v12 SDK 在 Azure Blob 存储中上传具有指定 ContentType 的 Blob?

Posted

技术标签:

【中文标题】如何使用 .NET v12 SDK 在 Azure Blob 存储中上传具有指定 ContentType 的 Blob?【英文标题】:How upload blob in Azure Blob Storage with specified ContentType with .NET v12 SDK? 【发布时间】:2020-05-13 16:03:45 【问题描述】:

我刚刚开始使用 .NET v12 SDK https://docs.microsoft.com/da-dk/azure/storage/blobs/storage-quickstart-blobs-dotnet 快速入门

但我似乎不知道如何在上传 blob 时指定 ContentType。

有人知道吗?

提前致谢。

【问题讨论】:

【参考方案1】:

可以如下设置,

 await blobClient.UploadAsync(stream, true, default);
 await blobClient.SetHttpHeadersAsync(new BlobHttpHeaders
 
    ContentType = contentType
 );

编辑:正如评论中提到的,使用单一方法执行相同操作的有效方法如下,

await blobClient.UploadAsync(ms, new BlobHttpHeaders ContentType = "text/plain");

【讨论】:

非常感谢 Sajeetharan!我还刚刚发现,您可以通过一次调用“await blobClient.UploadAsync(ms, new BlobHttpHeaders ContentType = "text/plain" );" 上传 blob 并指定 ContentType【参考方案2】:

请尝试这种UploadAsync 方法的覆盖。此方法将在单个网络调用中上传和设置内容类型。

这是您的代码:

var httpHeaders = new BlobHttpHeaders
 
    ContentType = contentType
 );
await blobClient.UploadAsync(stream, httpHeaders);

【讨论】:

通过对 UploadAsync 的覆盖,还可以为 blob 设置元数据。 @AmélieDupré - 重载采用BlobUploadOptions 的实例,这有助于元数据。见:docs.microsoft.com/en-us/dotnet/api/…

以上是关于如何使用 .NET v12 SDK 在 Azure Blob 存储中上传具有指定 ContentType 的 Blob?的主要内容,如果未能解决你的问题,请参考以下文章

上传大文件 Azure Blob .net SDK v12 问题

与 v11 相比,使用 v12 将文件上传到 Azure Blob 存储 SDK 的 ASP.NET Core 使用更高的内存

如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob

如何使用 JavaScript v12 SDK for Browsers 检索和显示(在浏览器中)存储在 Azure 存储帐户中的多个 pdf 的 URL

使用 Azure Java SDK V12 和 ListBlobs() 在 Azure Blobstorage 中列出 Blob 非常慢

如何使用 Java SDK v12 删除 Blob 文件夹