You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SAS从Azure Storage Blob容器下载大文件失败问题求助

Azure Blob 127GB VHD下载35分钟失败原因及解决方案

故障根因

  • SAS令牌有效期不足:多数场景下生成SAS时默认设置的有效期较短,若预留的有效时长仅略高于预估下载时长,叠加客户端与Azure的时钟偏移、网络波动导致下载变慢,会触发SAS过期直接终止任务,是固定35分钟时段失败的最高发原因。
  • 中间网络会话超时:企业出口防火墙、代理服务器、ISP默认的TCP长连接超时时间通常为30-45分钟,下载过程中如果短时间内没有有效数据传输,会话会被中间设备强制断开,导致任务失败。
  • 本地资源不足:下载大文件时AzCopy、Azure Storage Explorer都会在系统临时目录生成缓存分片,若C盘剩余空间不足文件大小的1.2倍,会出现缓存写入失败终止任务。
  • 参数配置不合理:默认的下载块大小过小、并发数过高,容易触发Azure存储侧限流,或者偶发网络抖动时没有足够的重试机制,导致任务中断。
  • Windows Server TCP配置缺陷:Windows Server默认的TCP保持存活探测间隔过长,无法维持长连接的会话有效性,易被中间设备判定为空闲连接断开。

可行解决方案

1. 优先调整SAS配置

生成新的SAS令牌时,将过期时间设置为预估下载时长的2倍以上,例如预估下载需要1小时,就设置为3小时有效期,避免时钟偏移和下载延迟导致的过期问题。

2. 使用AzCopy v10优化下载参数

使用以下命令执行下载,适配大文件场景:

azcopy copy "你的Blob SAS访问链接" "C:\Download\target.vhd" --block-size-mb 100 --retry-count 10 --cap-mbps 50 --log-level INFO

参数说明:

  • --block-size-mb 100:将分片块大小调整为100MB,减少分片数量降低连接开销
  • --retry-count 10:遇到网络错误时最多重试10次
  • --cap-mbps 50:限制下载速度为50MB/s,避免触发Azure存储侧的吞吐量限流,可根据实际带宽调整
  • 若网络需要走代理,提前执行set AZCOPY_CONCURRENCY_VALUE=16降低并发数,避免占满带宽导致会话中断。

3. 调整TCP长连接配置

以管理员身份打开cmd执行以下命令,开启TCP保持存活探测,避免会话被中间设备断开:

netsh int tcp set global timestamps=enabled
netsh int tcp set global keepalivetime=300000

执行完成后重启服务器生效,该配置会每5分钟发送一次存活探测包,维持长连接有效性。

4. 本地存储检查

  • 确认C盘剩余空间不小于160GB,预留足够的缓存空间
  • 确认C盘为NTFS格式,不支持大于4GB文件的FAT32/exFAT格式需要提前转换
  • 若使用Azure Storage Explorer下载,将临时缓存目录修改为剩余空间更大的磁盘,避免系统盘空间不足。

5. 网络配置排查

联系网络管理员确认出口防火墙、代理服务器针对Azure存储端点的TCP会话超时时间,调整为2小时以上,避免主动断开长连接。

内容的提问来源于stack exchange,提问作者Majkl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:15:04