首页 > 解决方案 > 用于解压缩 Blob 存储文件并将文件复制到另一个 blobStorage 的持久功能

问题描述

我有一个使用类似于此 https://github.com/FBoucher/AzUnzipEverything/blob/master/Unzipthis.cs的实现的 Az 函数, 当删除 zip 文件时我有 BLOB 触发器。Az 函数将其解压缩并将文件复制到新的 AZ blob 位置。我得到了包含数千个文件的 zip 文件,因此使用 foreach 循环复制过程需要很长时间。我尝试对每个异步https://github.com/Dasync/AsyncEnumerable使用 Parallel,它仅在本地运行时有效,部署时它似乎根本不起作用,没有错误,但没有任何反应。

我想尝试这个 Durable 函数,而不是像下面的示例,其中每个文件副本都由另一个活动函数完成。这将通过为复制作业设置单独的任务来帮助加快该过程,但问题是我如何将要复制的文件传递到 Activity 函数中的另一个 blob 位置?

https://github.com/Azure/azure-functions-durable-extension/blob/master/samples/precompiled/BackupSiteContent.cs

标签: c#azure-functionsazure-blob-storageazure-durable-functions

解决方案


我的建议是触发条件后,先将.zip文件直接复制到新的blob中,然后解压。因为我觉得直接解压和传输速度会很慢,类似于从U盘里拷贝电脑里的数据。

您可以参考这篇文章来复制 .zip 文件。你也可以在 github 上看到我的代码。复制完成后,您可以找到文件并解压缩。您可以在这篇文章中看到 rGiosa 的回答。它会帮助你。


推荐阅读