列出并恢复软删除的Blob-Azure Python

时间:2018-10-28 17:06:06

标签: python azure azure-storage-blobs

我需要还原容器中的多个Blob。该存储帐户已启用了10天的软删除功能。 我看到here关于如何删除的信息,但是在被软删除的目录中,我递归地存在多个blob

但是我无法通过python找到here

我需要在python中进行操作以列出和取消删除斑点

2 个答案:

答案 0 :(得分:1)

如Jay所述,当前您无法告诉Azure Storage REST API仅返回软删除的Blob。您需要做的是列出blob容器中的所有blob,并要求REST API在列表中包括已删除的blob。

因此,您将调用list_blobs方法,并且对于该方法中的include参数,您需要指定include.DELETED。返回的Blob列表将包含已删除的Blob。

然后,您将遍历这些blob,找出哪些blob处于软删除状态,并将使用undelete_blob对其进行删除。

您还提到您还删除了子文件夹中的Blob。要列出所有Blob,您需要将delimiter指定为空字符串。然后,您还将在子文件夹中获得Blob。

答案 1 :(得分:0)

当然,您可以在Python Storage SDK中找到与REST API相对应的sdk方法。

from azure.storage.blob.baseblobservice import (
    BaseBlobService
)

accountName = "***"
accountKey = "***"
containerName = "***"
blobName = "***"

blobService = BaseBlobService(account_name=accountName, account_key=accountKey)

blobService.undelete_blob(containerName, blobName)

希望它对您有帮助。