当目标文件夹已经存在时,阻止AzCopy.exe

时间:2018-09-07 00:25:49

标签: azure-devops azure-storage azure-storage-blobs

是否有AzCopy参数来确保目标文件夹为空?

如果没有,我应该如何检查以确保VSTS构建管道中的文件夹为空?

2 个答案:

答案 0 :(得分:0)

AFAIK,Azcopy具有可以only copy data that doesn't exist in the destination的功能,如果要在目标文件夹已存在时阻止AzCopy.exe,似乎没有必要检查目标文件夹是否为空。

  

使用/XO/XN参数可以分别排除较旧或较新的源资源。如果只想复制目标中不存在的源资源,则可以在AzCopy命令中同时指定两个参数

答案 1 :(得分:0)

传输的目的地是Blob还是本地文件?

如果是Blob,请使用以下脚本检查文件夹是否为空

$ctx=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $key
$blob = Get-AzureStorageBlob -Container $containerName -Prefix dir1/dir2/ -Context $ctx -MaxCount 1

if ($blob -eq $null)
{
    # container/dir1/dir2/ Don't have blob, so do AzCopy transfer
}

如果是本地文件,请使用以下脚本:

$file = Get-ChildItem c:\dir1\dir2\
if ($file -eq $null)
{
    # c:\dir1\dir2\ Don't have file, so do AzCopy transfer
}