无法从 Azure 存储下载大文件

Posted

技术标签:

【中文标题】无法从 Azure 存储下载大文件【英文标题】:Unable download large file from Azure Storage 【发布时间】:2021-10-25 14:45:36 【问题描述】:

我无法将大文件从 Azure 存储 Blob 容器(使用 SAS)下载到 C:\Download。我在 Windows Server 版本 2012 R2 / 2019 中尝试了 Azure Storage Explorer 1.10.1 / 1.20.0 / 1.20.1。

我也尝试过 AzCopy。它是大小为 127 GB 的 vhd 文件。

它运行了大约 35 分钟,然后失败了。

这有什么问题?你能给我一个可行的解决方案吗?

【问题讨论】:

下载失败时是否报错?请编辑您的问题并提供错误详情。此外,如果 SAS 令牌过期,您的下载可能会失败。请也检查一下。 @GauravMantri 如何检查 SAS 令牌是否过期。顺便说一句,当我将 127 GB 文件上传到同一个 blob 容器时,它是成功的。 您可以通过查看 SAS 到期日期(SAS 令牌中的se 参数)进行检查,否则如果 SAS 令牌已过期,您的下载将失败并显示 403 状态代码。 你是说这个参数吗? vhd?se=2021-09-24t08%3A26%3A43z&sig 日志包含“我们收到的数据的 MD5 哈希值与 Blob/文件服务中发现的预期值不匹配。这意味着要么存在数据完整性错误,要么另一个工具未能使存储的哈希保持最新。检查 MD5 哈希时。”我必须使用参数“--check-md5 NoCheck”并且下载成功。谢谢你的帮助,@GauravMantri 【参考方案1】:

正如@gaurav mantri 所建议的那样

当从 Azure 存储 Blob 容器下载失败时,请尝试 检查 SAS 到期日期(SAS 令牌中的 se 参数)为 如果 SAS 令牌过期,您的下载可能会失败。

如果 SAS 令牌未过期,请查看可能包含的 azcopy 日志 有关失败的信息。

感谢@gaurav mantri 的建议。

@majkl 找到的解决方案: 日志具有与预期值不匹配的数据的 MD5 哈希,如在 Blob/文件服务中找到的。这意味着要么存在数据完整性错误,要么另一个工具未能使存储的哈希保持最新。检查 MD5 哈希时。

使用参数“--check-md5 NoCheck”时,从 Azure 存储 Blob 容器下载大文件成功

【讨论】:

以上是关于无法从 Azure 存储下载大文件的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure blob 存储下载所有文件,对其进行压缩并以 JAVA 格式上传 zip 文件

如何将大文件上传到 Azure Blob 存储 (.NET Core)

合并和压缩 Azure Blob 存储中的多个大文件

使用 Azure 函数从 Azure Blob 存储下载文件会返回不同的文件大小

如何从 azure blob 存储下载文件

上传大文件 Azure Blob .net SDK v12 问题