我可以看到有一个任务将本地文件上传到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(使用前将#替换为@)