带有参数的 Azcopy 命令问题

Azcopy command issue with parameters

我在 shell 脚本中使用 Azcopy 将容器中的 blob 从一个存储帐户复制到 Azure 上的另一个存储帐户。 使用以下命令 -

azcopy copy "https://$source_storage_name.blob.core.windows.net/$container_name/?$source_sas" "https://$dest_storage_name.blob.core.windows.net/$container_name/?$dest_sas" --recursive

我正在为源帐户和目标帐户生成 SAS 令牌,并将它们作为参数与存储帐户和容器名称一起传递到上面的命令中。

执行时,我不断收到此错误 ->

failed to parse user input due to error: the inferred source/destination combination could not be identified, or is currently not supported

当我手动输入存储帐户名称、容器名称和 SAS 令牌时,命令成功执行并且存储数据按预期传输。但是,当我在 azcopy 命令中使用参数时出现错误。

如有任何建议,我们将不胜感激。

谢谢!

您可以使用下面的 PowerShell 脚本

param
(
    [string] $source_storage_name,
    [string] $source_container_name,
    [string] $dest_storage_name,
    [string] $dest_container_name,
    [string] $source_sas,
    [string] $dest_sas
    
)

.\azcopy.exe copy "https://$source_storage_name.blob.core.windows.net/$source_container_name/?$source_sas" "https://$dest_storage_name.blob.core.windows.net/$container_name/?$dest_sas" --recursive=true 

要执行上面的脚本,你可以运行下面的命令。

.\ScriptFileName.ps1 -source_storage_name "<XXXXX>" -source_container_name "<XXXXX>" -source_sas "<XXXXXX>" -dest_storage_name "<XXXXX>" -dest_container_name "<XXXXXX>" -dest_sas "<XXXXX>"

我正在从这里为两个存储生成 SAS 令牌。确保像我在图片中所做的那样检查所有框。

输出---