delete_blob()
似乎只删除容器中的文件以及容器内的文件夹和子文件夹中的文件。但当我试图从容器中删除文件夹时,我在python中看到了以下错误。在
Client-Request-ID=7950669c-2c4a-11e8-88e7-00155dbf7128 Retry policy did not allow for a retry: Server-Timestamp=Tue, 20 Mar 2018 14:25:00 GMT, Server-Request-ID=54d1a5d6-b01e-007b-5e57-c08528000000, HTTP status code=404, Exception=The specified blob does not exist.ErrorCode: BlobNotFound
BlobNotFound
The specified blob does not exist.RequestId:54d1a5d6-b01e-007b-5e57-c08528000000Time:2018-03-20T14:25:01.2130063Z.azure.common.AzureMissingResourceHttpError: The specified blob does not exist.ErrorCode: BlobNotFound
BlobNotFound
The specified blob does not exist. RequestId:54d1a5d6-b01e-007b-5e57-c08528000000 Time:2018-03-20T14:25:01.2130063Z
有人能帮忙吗?在
对于在python中搜索解决方案的其他人。这对我有用。
首先创建一个变量,该变量存储要删除的文件夹中的所有文件。
然后,对于该文件夹中的每个文件,通过声明容器的名称,然后指定实际的文件夹名.name.
通过删除文件夹中的所有文件,这些文件夹将在azure中被删除。
在这个过程中有两件事需要理解,你可以使用删除blob删除特定的文件、文件夹、图像…(blob),但是如果你想删除容器,你必须使用删除容器,它将删除其中的所有blob,下面是我创建的一个示例,用于删除路径/虚拟文件夹中的blob:
请参阅我的repo中的代码,并在自述部分提供解释,以及新的存储脚本:https://github.com/adamsmith0016/Azure-storage
在Azure Blob存储中,这样的文件夹不存在。它只是blob名称的前缀。例如,如果您看到一个名为
images
的文件夹,其中包含一个名为myfile.png
的blob,那么该blob的名称本质上就是images/myfile.png
。因为文件夹并不真正存在(它们是虚拟的),所以不能直接删除该文件夹。您需要做的是分别删除该文件夹中的所有blob(或者换句话说,删除名称以该虚拟文件夹名称/路径开头的blob)。一旦你删除了所有的blob,那么这个文件夹就会自动消失。
为了实现这一点,首先需要获取名称以虚拟文件夹路径开头的所有blob。为此,您将使用^{} 方法并在
prefix
参数中指定虚拟文件夹路径。这将为您提供一个以该前缀开头的blob列表。一旦你有了这个列表,你将一个一个地删除这些blob。相关问题 更多 >
编程相关推荐