压缩存在于AZ blob存储中的大文件并将其下载到存档文件中的最佳方法是什么(zip / rar) 使用天蓝色批次可以帮助吗? 当前,我们以传统方式实现此功能,我们读取流以生成zip文件并返回结果,但这会占用服务器上的大量资源和用户时间。 我在询问最佳的技术解决方案(使用Microsoft技术的首选方式)
答案 0 :(得分:1)
**from azure-batch only point of view**
的几种处理方法:(对于最初的部分,用户代码应拥有他们用于压缩文件的任何zip API,但 blob和用户想要在节点中使用,则下面提到了一些选项。)
对于您的问题的最初部分,我发现这可能很方便:https://microsoft.github.io/AzureTipsAndTricks/blog/tip141.html(但这主要是出于想法的考虑,您会更好地了解+需要相应地设计解决方案空间)
在下面的选项1和3中,需要确保您的用户代码能够处理解压缩或解压缩zip文件的操作。选项2是池级和任务级的*.zip
文件的批处理内置功能。
选项1 :下载资源文件后,您可以将*rar or *zip
文件添加为azure batch resource files
,然后在开始任务级别将其解压缩。 Azure Batch Pool Start up task to download resource file from Blob FileShare
选项2 :如果您在游戏中拥有zip
但没有rar 文件,则最好的选择是将此功能命名为Azure batch applicaiton package
链接在这里:https://docs.microsoft.com/en-us/azure/batch/batch-application-packages
Azure Batch的应用程序包功能可轻松实现 任务应用程序的管理及其在计算中的部署 池中的节点。使用应用程序包,您可以上传和 管理您的任务运行的应用程序的多个版本,包括 他们的支持文件。然后,您可以自动部署一个或多个 这些应用程序连接到池中的计算节点。
应用程序包是一个.zip文件,其中包含您需要的应用程序二进制文件和支持文件 运行应用程序的任务。每个应用程序包代表一个 该应用程序的特定版本。
关于大小:请参考上面文档中的blob链接中允许的最大值。
选项3 :(不确定是否适合您的方案)您的特定方案远景,但您也可以将虚拟blob安装到连接池via mount feature in azure batch的驱动器上和,您需要在启动任务时编写代码或从安装位置解压缩文件。
希望这可以帮助:)