gpt4 book ai didi

.net - Azure 存储 blob 的乐观并发始终抛出 HTTP 412

转载 作者:行者123 更新时间:2023-12-03 02:56:17 25 4
gpt4 key购买 nike

为了实现 Azure 存储 blob 的开放式并发,我根据 blob 属性中的 ETag 值构造一个 If-Match AccessCondition

如果另一个进程已更新 Blob,则 Blob 服务应返回 HTTP 412(前提条件失败)状态消息。但是,该服务始终返回此 412 状态。

在此示例中,我使用存储资源管理器手动查找 ETag 值。

重现问题的最小片段是:

var storage = CloudStorageAccount.Parse(connectionString);

var blobClient = storage.CreateCloudBlobClient();

var container = blobClient.GetContainerReference("foo");

var blob = container.GetBlockBlobReference("foo/1");

await blob.UploadTextAsync(
"test",
Encoding.UTF8,
AccessCondition.GenerateIfMatchCondition("\"0x1A52537587A1234\""),
new BlobRequestOptions(),
null);

最佳答案

问题是我不小心使用了错误的blobName:

var blob = container.GetBlockBlobReference("foo/1"); 

应该是:

var blob = container.GetBlockBlobReference("1");

否则 ETag 检查将正确失败,因为没有名为 foo/1 的 blob。

关于.net - Azure 存储 blob 的乐观并发始终抛出 HTTP 412,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52597314/

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