将大量数据上传到 Azure Blob 存储的最有效方式

Most efficient way to upload large amounts of data to Azure BlobStorage

我们经常需要将大型资产包 (1GB+) 上传到 Azure BlobStorage,稍后从那里下载。这些包在存储之前需要压缩,所以不久前我们为您的办公室投资了一台功能强大的 PC,您可以在上面安装 RDP,以便我们可以及时压缩这些包。

我们现在正在研究重新工具化,这个过程现在需要 (a) 可扩展,以便多个客户可以使用它, (b) 防灾,这样如果我们的办公室被抢劫,流程就不会被破坏,(c) 高效,如果我们有一个解决方案和b,但是很慢没有人会用它。

我一直在考虑编写一个 Azure 函数或 AWS Lambda,我们可以将其用于 运行 压缩过程,这将解决点 ab,但这会可能需要我们将包上传到存储,在那里将触发压缩并传递它的功能。但是初始上传过程需要优化,这样我们才不会损失太多速度。

tl;dr

将大型包从本地开发环境上传到 Azure BlobStorage 的最有效方法是什么?

可能最简单和高效的解决方案是使用 AzCopy(请参阅 https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10)。 AzCopy 被认为速度很快,它是 CLI-based,因此您可以 运行 手动或编写脚本,它是 cross-platform (Win/Mac/Linux)。它有大量选项(阅读文档)适用于各种情况,并且可以处理各种身份验证方法。它还具有 built-in 弹性——它会自动重试失败的上传多达 20 次(使用它自己的指数 back-off 逻辑)。

这其实是AZ303中的一道题

upload large asset packages (1GB+)

Data transfer for small datasets with low to moderate network bandwidth

AzCopy 或 Azure Storage Explorer 都是 Microsoft 的免费工具,可让您在 Windows、macOS 和 Linux 上使用 Azure 存储数据。您可以使用它们从 Azure blob 存储上传和下载数据。

Data transfer for large datasets with moderate to high network bandwidth

Data transfer for large datasets with low or no network bandwidth

参考: Choose an Azure solution for data transfer