有选择地删除上传到Azure blob的图像(Django / Python项目)

时间:2017-06-20 03:37:01

标签: django azure azure-storage azure-storage-blobs azure-blob-storage

在Django(Python)项目中,我使用Azure blob来存储用户上传的照片。代码简单地说是这样的:

from azure.storage.blob import BlobService

blob_service = BlobService(account_name=accountName, account_key=accountKey)
blob_service.put_blob(
            'pictures',
            name, # including folder
            content_str, # image as stream
            x_ms_blob_type='BlockBlob',
            x_ms_blob_content_type=content_type,
            x_ms_blob_cache_control ='public, max-age=3600, s-maxage=86400'
        )

我的问题是:在我的特定情况下,delete上传照片的等效方法是什么?我正在编写一个任务来定期清理我的数据模型,因此也希望摆脱与它们相关的图像。

1 个答案:

答案 0 :(得分:2)

你应该可以使用:

blob_service.delete_blob(container_name, blob_name)

您还可以删除整个容器:

blob_service.delete_container(container_name)

如果您尝试删除快照,处理租约等,还有一些额外的参数会对您有所帮助。

请注意,put_blob()中定义了delete_blob(),而blockblobservice.py中定义了some project libs mylib1 ... 3rdlibs1 ... apps myapp1 ... (删除将是相同的,无论是页面,块还是追加blob )。