gpt4 book ai didi

azure - 从 Azure 存储中删除 "subpath"

转载 作者:行者123 更新时间:2023-12-02 08:08:31 27 4
gpt4 key购买 nike

我知道 Azure 没有实际的子路径,但如果我有 container/projectID/iterationNumber/filename.jpg 并且我删除了一个项目,如何从 ProjectID 中删除?通过编码可以实现吗?

我不想在创建 Web 应用程序时使用 Azure 应用程序。

提前致谢

编辑:

这是 Microsoft 提供的针对特定项目的代码:

// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

// Retrieve reference to a blob named "myblob.txt".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob.txt");

// Delete the blob.
blockBlob.Delete();

系统设计模型

    public static SystemDesign returnImageURL(IListBlobItem item)
{

if (item is CloudBlockBlob)
{
var blob = (CloudBlockBlob)item;
return new SystemDesign
{
URL = blob.Uri.ToString(),
};

}
return null;
}

}

最佳答案

如您所知,blob 存储没有子文件夹的概念。它只有 2 级层次结构 - containerblob。因此本质上,子文件夹只是附加到 blob 名称的前缀。在您的示例中,您上传的实际文件是 filename.jpg,但从 Blob 存储角度来看,其名称是 projectID/iterationNumber/filename.jpg

由于没有子文件夹的概念,因此您无法像我们在本地计算机上那样删除它。不过有一个办法。 Blob 存储提供了一种搜索以特定 Blob 前缀开头的 Blob的方法。因此,您要做的就是首先列出以特定前缀(在您的情况下为 projectID)开头的所有 Blob,然后一次删除一个作为列出操作结果返回的 Blob。

看看下面的示例代码:

        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
var container = storageAccount.CreateCloudBlobClient().GetContainerReference("container");
BlobContinuationToken token = null;
do
{
var listingResult = container.ListBlobsSegmented("blob-prefix (projectID in your case)", true, BlobListingDetails.None, 5000, token, null, null);
token = listingResult.ContinuationToken;
var blobs = listingResult.Results;
foreach (var blob in blobs)
{
(blob as ICloudBlob).DeleteIfExists();
Console.WriteLine(blob.Uri.AbsoluteUri + " deleted.");
}
}
while (token != null);

关于azure - 从 Azure 存储中删除 "subpath",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729570/

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