gpt4 book ai didi

c# - 上传 blockblob 并设置 contenttype

转载 作者:IT王子 更新时间:2023-10-29 04:45:15 26 4
gpt4 key购买 nike

我正在使用 C# 中的 Microsoft.WindowsAzure.Storage.* 库。

这就是我将内容上传到存储的方式:

// Store in storage
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("...connection string...");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("pictures");

// Create container if it doesnt exist
container.CreateIfNotExists();

// Make available to everyone
container.SetPermissions(new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});

// Save image
CloudBlockBlob blockBlob = container.GetBlockBlobReference("blah.jpg");
blockBlob.UploadFromByteArray(byteArrayThumbnail, 0, byteArrayThumbnail.Length);
blockBlob.Properties.ContentType = "image/jpg"; // *** NOT WORKING ***

我上传到存储的所有内容都以内容类型“application/octet-stream”保存,即使我使用值为“image/jpg”的 setter (请参阅代码中的最后一行)。

问题#1:为什么 ContentType setter 不起作用?

问题#2:如果我使用 Windows Azure 管理门户手动将内容类型更改为“image/jpg”,然后将文件的绝对 URI 复制到浏览器的地址字段,然后按 Enter 键,则会生成 jpg 文件被下载而不是显示。这种 mime 类型不是应该显示而不是下载吗?我该如何改变这个?

最佳答案

实际上你不必调用SetProperties方法。为了在上传 blob 时设置内容类型,只需在调用上传方法之前设置 ContentType 属性即可。所以你的代码应该是:

// Save image
CloudBlockBlob blockBlob = container.GetBlockBlobReference("blah.jpg");
blockBlob.Properties.ContentType = "image/jpg";
blockBlob.UploadFromByteArray(byteArrayThumbnail, 0, byteArrayThumbnail.Length);

这样就可以了。

关于c# - 上传 blockblob 并设置 contenttype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com