当前位置: 首页 > 知识库问答 >
问题:

如何删除Azure blob容器中的文件夹

颛孙航
2023-03-14

我在Azure中有一个名为图片的blob容器,其中包含各种文件夹(请参阅下面的快照):

我试图删除快照中显示的标题为“用户”和“上传”的文件夹,但我保留了错误:无法删除blob图片/上传。错误:指定的blob不存在

注意:如果需要,请向我询问更多信息


共有3个答案

史智志
2023-03-14

在最新的回购协议中,Azure。存储Blobs,这很简单

var connectionString = "blob-connection-string";
var containerName = "container-name";
var folderPath = "folder1/subfolder/sub-subfolder";

var blobServiceClient = new BlobServiceClient(connectionString);
var blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobItems = blobContainerClient.GetBlobsAsync(prefix: folderPath);
await foreach (BlobItem blobItem in blobItems)
{
     BlobClient blobClient = blobContainerClient.GetBlobClient(blobItem.Name);
     await blobClient.DeleteIfExistsAsync();
}

由于每个blob都有自己的uri值,因此您可以在查询之前设置前缀,以便它可以获取和删除具有特定uri的blob。当blob被删除时,该文件夹将消失。

糜淇
2023-03-14

还有一个来自微软的桌面存储浏览器。它有一个功能,您可以选择虚拟文件夹,然后将其删除,有效地删除所有子blob。

https://azure.microsoft.com/en-us/features/storage-explorer/

姜羽
2023-03-14

Windows Azure Blob存储没有文件夹的概念。层次结构非常简单:存储帐户

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("your storage account");
CloudBlobContainer container = storageAccount.CreateCloudBlobClient().GetContainerReference("pictures");
foreach (IListBlobItem blob in container.GetDirectoryReference("users").ListBlobs(true))
{
    if (blob.GetType() == typeof(CloudBlob) || blob.GetType().BaseType == typeof(CloudBlob))
    {
        ((CloudBlob)blob).DeleteIfExists();
    }
}

容器GetDirectoryReference(“用户”)。ListBlobs(true)列出“picture”容器中以“users”开头的blob,然后您可以单独删除它们。要删除其他文件夹,只需指定如下GetDirectoryReference(“您的文件夹名”)。

 类似资料:
  • 问题内容: 如何在Python中删除本地文件夹的内容? 当前项目适用于Windows,但我也希望看到* nix。 问题答案:

  • 问题内容: 如何删除Java中文件的内容? 问题答案: 这个怎么样:

  • 问题内容: 此问题与我是否应该担心多余的,未运行的Docker容器有关?。 我想知道如何删除旧容器。将让你删除一个,但我有很多了。没有提供选择选项(如全部,或按图像名称)。 也许有一个存储这些容器的目录,可以方便地手动删除它们? 问题答案: 从Docker 1.13.x开始, 您可以使用Docker容器prune: 这将删除所有停止的容器,并且应在所有平台上以相同的方式工作。 还有一个Docker

  • 问题内容: 尝试删除不为空的文件夹时,出现“访问被拒绝”错误。我尝试使用以下命令:。 删除/删除不为空的文件夹/目录的最有效方法是什么? 问题答案: 标准库参考:shutil.rmtree。 根据设计,在包含只读文件的文件夹树上失败。如果要删除该文件夹而不管它是否包含只读文件,请使用

  • 我有很多运行docker容器的测试。每个都有一个卷。 如何知道需要删除的卷名? 例如: 手动停止并删除容器后,卷仍然存在。 我不想删除所有卷,因为其中一些卷仍在使用中。

  • 问题内容: 我已经能够使用该站点上多个用户的输入来使用python创建一个csv,并希望对您的帖子表示感谢。我现在很困惑,将发表我的第一个问题。 我的input.csv看起来像这样: 我正在尝试删除“年份”列及其所有条目。从1960年到2010年,总共有40多个条目。 问题答案: 顺便说一句,循环可以删除,但并没有真正简化。 同样,您可以以直截了当的方式坚持删除列的要求。我发现这通常是一个不好的策