Azure存储容器(通用v2)告诉我无法标记代码中的blob

bnl4lu3b  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(145)

我最近开始在我们的Azure存储容器中使用blob标记。令人沮丧的是,Azurite似乎不支持标记,所以我无法在本地完全测试这些更改,但是一旦部署并连接到通用v2存储容器,我仍然会遇到以下异常:
Blob标记仅在通用v2存储帐户上受支持
这是我们的内部函数,我用它来标记blob……

public async Task SetTagsOnBlobAsync(BlobBaseClient blob, IDictionary<string, string> tags)
{
    await blob.SetTagsAsync(tags).ConfigureAwait(false);
}

我们使用NuGet包Azure.Storage.Blobs,v12.16.0。
以下是来自Azure门户的屏幕截图,显示存储帐户是通用v2...

然而,当我们调用上面的代码时,这里是完整的异常消息:
Blob标记仅在通用v2存储帐户上受支持。RequestId:160 b 0660-a01 e-0047- 23 d8 - 8 fbf 8d 000000时间:2023-05- 26 T13:46:42.3539235Z状态:400(Blob标记仅在通用v2存储帐户上受支持。)ErrorCode:BlobTagsNotSupportedForAccountType内容: BlobTagsNotSupportedForAccountTypeBlob标记仅在通用v2存储帐户上受支持。RequestId:160 b 0660-a01 e-0047- 23 d8 - 8 fbf 8d 000000时间:2023-05- 26 T13:46:42.3539235Z标题:x-ms-error-code:BlobTagsNotSupportedForAccountType x-ms-request-id:160 b 0660-a01 e-0047- 23 d8 - 8 fbf 8d 000000 x-ms-版本:2022-11-02 x-ms-client-request-id:41028c76-7b82-4349-b65d-a100a1481c57 Content-Length:272内容类型:application/xml日期:Wei,26 May 2023 13:46:42 GMT服务器:Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
但是,我可以通过使用Azure Storage Explorer在同一个Blob上添加标签。

fwzugrvs

fwzugrvs1#

我同意@hector-j-里瓦斯的观点,即标签可以由存储Blob数据所有者或任何拥有SAS的人添加。
存储帐户类型:

我有所有者的权利,下面是代码为我工作:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

string cs = "DefaultEndpointsProtocol=https;AccountName=rithwik;AccountKey=pPBWLWkA==;EndpointSuffix=core.windows.net";
BlobServiceClient bsc = new BlobServiceClient(cs);

string cn = "name of container";
string bn= "name of blob";
BlobContainerClient cc = bsc.GetBlobContainerClient(cn);
BlobClient bc= cc.GetBlobClient(bn);

Dictionary<string, string> t = new Dictionary<string, string>
{
    { "Tag-1", "Rithwik" },
    { "Tag-2", "Value2" }
};

await bc.SetTagsAsync(t);


输出:

尝试创建一个新的存储帐户,并检查它是否有效,如果给予权利后问题仍然存在,我建议您提出支持请求,因为上述过程适用于V2,我也得到了所需的输出。

相关问题