从逻辑应用中删除包含 BLOB 的目录
Posted
技术标签:
【中文标题】从逻辑应用中删除包含 BLOB 的目录【英文标题】:Delete Directory containing BLOB from Logic App 【发布时间】:2021-09-01 13:35:26 【问题描述】:这里的任务是从逻辑应用中删除存储帐户中的文件夹。我正在寻求与“删除 Blob”类似的操作来删除文件夹。比如目录结构是这样的
XYZ -> 2021-06-14 -> 文件名.json
我想删除文件夹本身,但找不到相同的直接操作。也接受任何变通方法。
【问题讨论】:
所提供的答案对您有帮助吗?如果是这样,您能否接受答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)作为您的问题的解决方案。这可能对其他社区成员有益。 【参考方案1】:这里有一些链接,您可以在其中了解有关使用逻辑应用删除 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/
【讨论】:
【参考方案2】:Azure Blob 存储实际上并没有文件夹的概念。层次结构非常简单:存储帐户>容器>blob。
我有两种方法
方式 - 1 我们可以使用 delete 方法从容器中删除特定的 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();
方式 - 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();
更多分析可以参考以下链接link 1link 2。
【讨论】:
以上是关于从逻辑应用中删除包含 BLOB 的目录的主要内容,如果未能解决你的问题,请参考以下文章
使用 azure 逻辑应用将 blob 从 azure 存储帐户动态发送到电子邮件
Azure 逻辑应用可以从存储帐户中读取 excel 文件吗?