如何使用 .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?的主要内容,如果未能解决你的问题,请参考以下文章