gpt4 book ai didi

azure - Blob 属性被忽略

转载 作者:行者123 更新时间:2023-12-03 05:59:09 26 4
gpt4 key购买 nike

我正在尝试设置上传到 Blob 服务的缩略图的属性。

CloudBlockBlob blockBlob = container.GetBlockBlobReference(Guid.NewGuid().ToString().Replace("-", "") + ".jpg");
bytes = thumbnailStream.ToArray();
await blockBlob.UploadFromByteArrayAsync(bytes, 0, bytes.Length);
blockBlob.Properties.ContentType = "image/jpeg";
blockBlob.Properties.CacheControl = "public, max-age=172800";
await blockBlob.SetPropertiesAsync();
return blockBlob.Uri.ToString();

我在浏览器中收到的 header 如下:

Content-Length:0
Date:Sun, 07 Feb 2016 11:51:11 GMT
Server:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id:5f77d341-0001-00ef-759d-61c590000000
x-ms-version:2009-09-19

我做错了什么还是一个错误?

最佳答案

你没有做错任何事,也不是一个错误。本质上,这些是 Set Blob Properties 的响应 header 操作,当执行以下代码行时执行:

await blockBlob.SetPropertiesAsync();

我还注意到您的代码不是最优的,可以改进。本质上,您正在执行 2 个网络操作 - 首先上传 Blob,第二个设置 Blob 的属性。您只需更改几行代码即可将它们组合在一个操作中:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(Guid.NewGuid().ToString().Replace("-", "") + ".jpg");
bytes = thumbnailStream.ToArray();
blockBlob.Properties.ContentType = "image/jpeg";
blockBlob.Properties.CacheControl = "public, max-age=172800";
await blockBlob.UploadFromByteArrayAsync(bytes, 0, bytes.Length);
return blockBlob.Uri.ToString();

上面的代码行不仅会上传 blob,还会在单个网络调用中设置它的属性。同样在这种情况下,如果您查看响应 header ,您将看到返回的 blob 内容长度和其他 blob 属性。

关于azure - Blob 属性被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253142/

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