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

寻求18GB大文件稳定上传至Azure Blob Storage的AzCopy优化方案

AzCopy大文件上传Azure Blob不稳定的优化方案

我尝试使用AzCopy将18GB的大文件上传至Azure Blob Storage,小文件上传正常,但大文件的上传结果不稳定。以下是抓取工作站内存并压缩后上传的PowerShell脚本:

$path = "C:\Windows\Temp\"

# Set Azure Blob forensic storage
$AzureURI = "https://something.blob.core.windows.net/storagepath"
# Set Location 
Set-Location -Path C:\Windows\Temp\
$env:AZCOPY_CONCURRENCY_VALUE=4

# Download AzCopy
Invoke-WebRequest -Uri "https://aka.ms/downloadazcopy-v10-windows" -OutFile AzCopy.zip -UseBasicParsing
  
# Expand Archive
Expand-Archive ./AzCopy.zip ./AzCopy -Force

Get-ChildItem ./AzCopy/*/azcopy.exe | Move-Item -Destination "C:\Windows\Temp\azcopy.exe"

# Download Raptor Grab Memory from Azure Blob Storage 
$File = "Raptor_GrabMemory.exe"
$AzureToolURI = "https://something.blob.core.windows.net/forensiccollections/Raptor_GrabMemory.exe?sp=racwl&st=2023-02-27T21:18:50Z&se=2024-02-28T05:1(snip)"
Invoke-WebRequest -Uri $AzureToolURI -OutFile $File

# Grab the memory and zip it
.\Raptor_GrabMemory.exe

# Grab the memory file
$file = Get-Childitem –Path $path -Include CTAM_* -File -Recurse -ErrorAction SilentlyContinue

# use azcopy to push file to blob storage 
.\azcopy.exe cp $file $AzureURI --check-length=false 2>&1

目前仅将AZCOPY_CONCURRENCY_VALUE设置为4时有部分成功,但仍时好时坏。不介意上传速度,哪怕耗时8-10小时,只要能完成即可。以下是针对性优化建议:

  • 进一步降低并发数+启用断点续传
    把并发数压到最低(1或2),彻底减少网络波动的影响,同时开启断点续传,中断后自动从上次位置继续:

    $env:AZCOPY_CONCURRENCY_VALUE=1
    .\azcopy.exe cp $file $AzureURI --check-length=false --resume 2>&1
    
  • 缩小分块大小
    默认100MB的分块在不稳定网络里容易失败,改成32MB甚至16MB,单次传输的数据量更小,容错性更高:

    $env:AZCOPY_BLOCK_SIZE_MB=32
    .\azcopy.exe cp $file $AzureURI --check-length=false --resume 2>&1
    
  • 提高重试次数与超时时间
    给AzCopy更多重试机会和更长的单块传输超时,应对临时网络卡顿:

    .\azcopy.exe cp $file $AzureURI --check-length=false --resume --max-retries=20 --timeout=300s 2>&1
    
  • 强制单线程分块上传
    如果上面的设置还是不稳,直接禁用并行分块传输,完全单线程跑:

    $env:AZCOPY_CONCURRENCY_VALUE=1
    $env:AZCOPY_PARALLEL_BLOCK_UPLOADS=1
    .\azcopy.exe cp $file $AzureURI --check-length=false --resume 2>&1
    
  • 脚本层面补全验证逻辑
    确保只获取到目标内存文件,避免因多文件匹配导致上传异常:

    $file = Get-Childitem –Path $path -Filter CTAM_* -File -Recurse -ErrorAction Stop | Select-Object -First 1
    if (-not $file) { 
        Write-Error "未找到目标内存文件"
        exit 1
    }
    
  • 上传后验证完整性
    添加MD5校验,确保文件上传后和本地一致:

    .\azcopy.exe cp $file $AzureURI --check-length=false --resume --verify-md5 2>&1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:57:03