gpt4 book ai didi

azure - 使用 C# 从 Azure 存储中删除 Blob

转载 作者:行者123 更新时间:2023-12-02 07:43:12 26 4
gpt4 key购买 nike

我使用的包是Azure.Storage.Blobs (v12.9.1),我正在尝试删除一个blob。

这是我编写的代码(我没有收到任何错误):

//path - storage url without token 
public async Task<bool> DeleteFilefromStorage(string path)
{
try
{
BlobServiceClient blobServiceClient = new BlobServiceClient(Helper.StorageCS);

string containerName = Helper.ContainerName;

Uri uri = new Uri(path);
string filename = Path.GetFileName(uri.LocalPath);

BlobContainerClient blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);

var blob = blobContainerClient.GetBlobClient(filename);

return await blob.DeleteIfExistsAsync();
}
catch
{
throw;
}
}

最佳答案

您的代码失败的原因是您的 blob URL 类似于 https://mystorage.blob.core.windows.net/mycontainer/files/ba143f66-ba18-478a-85d6-0d661e6894dd.xlsx 其中文件 (ba143f66-ba18-478a-85d6-0d661e6894dd.xlsx) 位于名为 files 的虚拟文件夹内。

但是,当您执行string filename = Path.GetFileName(uri.LocalPath);时,它只会返回ba143f66-ba18-478a-85d6-0d661e6894dd.xlsx并且不是files/ba143f66-ba18-478a-85d6-0d661e6894dd.xlsx

因此,当您尝试删除该文件时,您将收到 404 错误。由于 DeleteIfExistsAsync 方法会出现 404 (Not Found) 错误,因此您不会收到任何错误,但同时 blob 也不会被删除(因为它不会删除)存在)。

关于azure - 使用 C# 从 Azure 存储中删除 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69052397/

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