gpt4 book ai didi

c# - Azure BlobBatchClient.DeleteBlobsAsync 始终返回 404 blob not found

转载 作者:行者123 更新时间:2023-12-04 07:29:30 24 4
gpt4 key购买 nike

在尝试批量删除容器中的 blob 时,我遇到了非常奇怪的行为。具有以下代码(请注意,出于简洁和安全原因,省略或编辑了一些代码):

var blobServiceClient = GetAzureBlobServiceClient();
var container = await BuildAzureContainer(blobServiceClient);

var blobsToBeDeleted = new List<Uri>();

var thumbImage = removedMedia.Path.GetThumbImageName();
blobsToBeDeleted.Add(new Uri("https://account-name.blob.core.windows.net/container-name/blob-name"));

if (!string.IsNullOrEmpty(thumbImage))
{
blobsToBeDeleted.Add(new Uri("https://account-name.blob.core.windows.net/container-name/thumbs/blob-name"));
}

if (blobsToBeDeleted.Any())
{
var batch = blobServiceClient.GetBlobBatchClient();
await batch.DeleteBlobsAsync(blobsToBeDeleted, DeleteSnapshotsOption.IncludeSnapshots);
}

使用Azure.Storage.Blobs(12.9.0) 和Azure.Storage.Blobs.Batch(12.6.0)在我尝试执行批量删除之前,我将图像上传到 Azure 并确认它们已上传并存在于容器中。 Azure 的响应是:

System.AggregateException: 2 batch operation(s) failed. (The specified blob does not 
exist.
RequestId: **removed**
Time:2021-06-18T08:16:15.2409894Z
Status: 404 (The specified blob does not exist.)
ErrorCode: BlobNotFound

还尝试使用以下方式获取 Uri:

container.GetBlobClient("blob-name").Uri

container.GetBlobClient("thumbs/blob-name}").Uri

它也返回正确的网址,但运气不佳。

我已经检查过,我添加到列表中的 URL 与 Azure 中的事件 URL 完全相同。无论我做什么,响应都是相同的 - 所有批处理操作都返回 BlobNotFound。例如,如果对相同的 blob 执行以下操作:

BlobClient blob = container.GetBlobClient("container-name/blob-name");
await blob.DeleteAsync(DeleteSnapshotsOption.IncludeSnapshots);

该 blob 已成功删除。我真的很挣扎,无法找到导致这种行为的原因,特别是当我能够删除相同的 blob 但不能批量删除时。我是否遗漏了什么或者 SDK 发生了什么问题?决定在 GitHub 中打开新问题之前先写在这里。

任何帮助将不胜感激。

附注我确信这在几个月前是有效的,唯一改变的是 NuGet 包更新。

最佳答案

我自己做了一些测试,如果为 batch.DeleteBlobsAsync 指定 DeleteSnapshotsOption.IncludeSnapshots 来删除没有快照的 Blob,则会收到 404 错误。

所以恐怕你需要在批量删除 blob 之前检查它们是否有快照。

关于c# - Azure BlobBatchClient.DeleteBlobsAsync 始终返回 404 blob not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68031928/

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