Azure Pipelines - 使用 azcopy 下载文件

2024-04-05

我可以看到有一个任务将本地文件上传到Azure存储或VM。但是我们如何从 blob 或文件共享下载到管道代理中呢?目前我正在使用 azcopy 和 SAS URI。 Pipelines 中是否有一个任务可以使用服务连接来执行此操作?


因此,由于我从 Azure 存储共享(不是 blob 或容器)下载文件,azcopy 的速度要快得多。使用az storage file download-batch太慢了。相反,我们可以使用 bash 来调用 azcopy。

在管道代理中安装 azcopy

- task: Bash@3
  displayName: Install azcopy
  inputs:
    targetType: 'inline'
    script: |
      curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
      mkdir $(Agent.ToolsDirectory)/azcopy
      wget -O $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux
      tar -xf $(Agent.ToolsDirectory)/azcopy/azcopy_v10.tar.gz -C $(Agent.ToolsDirectory)/azcopy --strip-components=1

使用 az-cli 任务通过 azcopy 下载

- task: AzureCLI@2
  displayName: Download using azcopy
  inputs:
    azureSubscription: 'Service-Connection'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      end=`date -u -d "180 minutes" '+%Y-%m-%dT%H:%M:00Z'`
      sas=$(az storage share generate-sas -n share-name --account-name account-name --https-only --permissions lr --expiry $end -o tsv)
      $(Agent.ToolsDirectory)/azcopy/azcopy copy "https://account-name.file.core.windows.net/share-name/folder/?$sas" "/Download-Path" --recursive --check-md5=FailIfDifferent
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure Pipelines - 使用 azcopy 下载文件 的相关文章

随机推荐