我正在创建一个执行以下操作的 Azure 管道:
- 获取最后一个工件
- 将该工件复制到 azure 容器
这可行,但我需要在复制之前删除容器中的所有内容。这些文件位于子文件夹中,但存在以下问题:
Azure 文件复制 v5 出现 blob 前缀错误,因此我无法使用清理文件。所以不得不降到 v3 并且不知道从这里去哪里
使用了 v5,但收到错误上传到带有 blob 前缀的容器失败,错误为 azcopy.exe
最佳答案
如果您在尝试删除 Azure 容器中的文件时遇到
您可以使用 Azure File Copy v5
问题和 blob 前缀错误, 尝试另一种方法>Azure 管道中的 Azure CLI
任务。
您可以将 azcopy remove
命令与 --recursive
命令结合使用,以删除 Azure Blob Storage
中容器中的所有文件.
Azure CLI
任务,在脚本中使用 azcopy remove
命令删除容器中的所有文件。
以下是使用 azcopy remove
删除容器中所有 Blob 的示例命令
azcopy remove "https://<storage-account-name>.blob.core.windows.net/<container-name>/*" --recursive
删除任务:
- task: AzureCLI@2
inputs:
azureSubscription: '<Azure subscription>'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
azcopy remove "https://<storage-account-name>.blob.core.windows.net/<container-name>/*" --recursive
- 删除容器中的所有文件后,您可以继续处理 Azure 文件 Copy将新项目复制到 Azure 容器的任务。
azcopy copy "<path-to-artifact>" "https://<storage-account-name>.blob.core.windows.net/<container-name>" --recursive --delete-destination
复制任务:
- task: AzureCLI@2
inputs:
azureSubscription: '<Azure subscription>'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
azcopy copy "<path-to-artifact>" "https://<storage-account-name>.blob.core.windows.net/<container-name>" --recursive --delete-destination
关于azure - 复制前删除 Azure Blob 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76587999/