AzCopy 不传输任何文件

AzCopy not transferring any files

所以我的复制行是这样的。

.\azcopy copy $source $destination --recursive=TRUE

其中 $source 是我在 for each 循环中迭代的列表。 destination 是一个包含 sas 的 Uri,它由另一个函数检索。

我的来源是网络共享文件夹,如下所示:

$Sources = @(
  '\computer\folder name\folder\*.zip',
)

同一台远程机器上大约五个文件路径的列表。

我正在对带有 *.zip 的第一个文件路径进行故障排除,中间有一个带有 space 的文件夹,如显示的那样。

我的问题是,这一切似乎 运行 都很好,但没有传输任何文件,也没有检测到要传输的文件。那里有一个压缩文件夹。

Files to transfer = 0

日志文件不包含任何错误,并指出它已成功完成。

有什么想法吗?

F.y.i 当 运行针对本地文件而不是远程 FileShare 时,它​​工作正常。

您不能以您正在使用的格式使用 hastable,而应该使用数组。

示例:

$hashtable = @{
1="\server\sharename\path\file"
2="\server\sharename\path\file"
}

$array=@(
"\server\sharename\path\file"
"\server\sharename\path\file"
)

我在我的环境中测试了相同的要求,我有一个文件共享映射到我的机器,如下所示:

有两种方法可以使用 azcopy 从 netowrk 共享执行复制到 azure 存储容器:

使用 UNC 路径的解决方案 1:

$destination= "https://<StorageaccountName>.blob.core.windows.net/testdestination?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2022-02-16T14:17:41Z&st=2022-02-16T06:17:41Z&spr=https&sig=<Redacted>"
$Sources = @(
  "\cloudshellansuman.file.core.windows.net\ansutest\testzipfolder\*.zip"
  "\cloudshellansuman.file.core.windows.net\ansutest\testdocfolder\AADSTS54005.docx"
)

ForEach($Source in $Sources){
  .\azcopy copy $Source $destination --recursive=true
}

如果上述方法不起作用,则使用映射驱动器的解决方案 2:

$destination= "https://<StorageaccountName>.blob.core.windows.net/testdestination?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2022-02-16T14:17:41Z&st=2022-02-16T06:17:41Z&spr=https&sig=<Redacted>"
$Sources = @(
  'Z:\testdocfolder\AADSTS54005.docx'
  'Z:\testzipfolder/*.zip'
)

ForEach($Source in $Sources){
  .\azcopy copy $Source $destination --recursive=true
}

输出:

注意:我使用的是azcopy 10.13.0版本

解决方案是共享路径无效,但使用完整的 unc 路径有效。所以 \computer\folder2 可能会设置为共享,但在我退出 \computer\C$\folder1\folder2 之前它不会起作用。因此,每个源的完整路径不是您在文件浏览器中访问它时期望到达共享的路径。