这里的任务是从逻辑应用程序中删除存储帐户中的文件夹。我正在寻求类似于";删除Blob";也可以删除文件夹。例如,目录结构类似
XYZ->2021-06-14->文件名.json
我想删除文件夹本身,但找不到相同的直接操作。也接受任何解决方案。
以下是一些链接,您可以在其中获得有关使用Logic App 删除blob内文件或文件夹的详细信息
1(https://lucavallarelli.altervista.org/blog/gdpr-logic-app-delete-blob/
2(https://sameeraman.wordpress.com/2017/08/25/logic-apps-delete-files-older-than-x-days-from-a-blob-storage/
Azure Blob存储并没有真正的文件夹概念。层次结构非常简单:存储帐户>容器>blob。
这个我有两种方法
WAY-1我们可以使用如下删除方法从容器中删除特定Blob:
public void DeleteBlob()
{
var _containerName = "appcontainer";
string _storageConnection = CloudConfigurationManager.GetSetting("StorageConnectionString");
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(_storageConnection);
CloudBlobClient _blobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer _cloudBlobContainer = _blobClient.GetContainerReference(_containerName);
CloudBlockBlob _blockBlob = _cloudBlobContainer.GetBlockBlobReference("f115a610-a899-42c6-bd3f-74711eaef8d5-.jpg");
//delete blob from container
_blockBlob.Delete();
}
删除操作将是:
public ActionResult DeleteBlob()
{
imageService.DeleteBlob();
return View();
}
WAY-2列出所需容器中的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();
}
}
有关进一步的分析,您可以参考以下链接链接1链接2。