无法从 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)