c# - 使用 BlobContainerClient.UploadBlobAsync() 设置内容类型

标签 c# azure

这两篇文章看起来很有希望:

How upload blob in Azure Blob Storage with specified ContentType with .NET v12 SDK?

Uploading blockblob and setting contenttype

但在两者中,他们都使用不同的库。 (为什么有这么多?)根据我无法控制的权力的要求,我们正在使用 BlobContainerClient 。在该类中,我们使用 UploadBlobAsync方法。

public async Task<string> UploadAsync(string fileName, byte[] file, string containerName)
{
    ...
    BlobContainerClient container = await createContainerIfNotExistsAsync(containerName);
    using Stream stream = file.ToStream();
    var result = await container.UploadBlobAsync(fileName, stream);  // <-- does the upload.
    ...
}

默认情况下,类型设置为application/octet-stream。我怎样才能覆盖这个?

最佳答案

好的,明白了。有两种方法可以将文件上传到 Blob 存储。

第一个是我的做法,即绕过 BlobClient 的创建。请参阅 OP 的示例。

第二个看起来像这样:

public async Task<string> UploadAsync(string fileName, byte[] file, string containerName)
{
    ...
    BlobContainerClient container = await createContainerIfNotExistsAsync(containerName);
    BlobClient blobClient = container.GetBlobClient(fileName);
    using Stream stream = file.ToStream();
    var result = await blobClient.UploadAsync(stream, new BlobHttpHeaders { ContentType = "text/plain" });
    ...
}

关于c# - 使用 BlobContainerClient.UploadBlobAsync() 设置内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60742946/

相关文章:

c# - 获取注册表项值的最简单方法

c# - 在 ASP .NET MVC 应用程序中使用 UserManager 的种子方法期间没有创建用户

node.js - Azure VM 上的 Mean.io 的奇怪行为

azure - 在 Azure 中为每个用户创建一个容器存储

c# - 无法使用Azure功能将消息发送到服务总线队列

c# - VS 2015,类图

c# - 将纳秒转换为日期时间

C# GemBox Excel 导入错误

不同地理数据中心中的 Azure 数据工厂 v2 和集成运行时

c# - 从 Azure Web 角色中,检查进程是否正在辅助角色中运行