Azcopy 将源解释为本地并在它是 gcloud 存储时添加当前路径 https url

Azcopy interprets source as local and adds current path when it is a gcloud storage https url

我们想要将文件从 Google 存储复制到 Azure 存储。 我们使用了以下指南:https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-google-cloud

我们运行这个命令:

azcopy copy 'https://storage.googleapis.com/telia-ddi-delivery-plaace/activity_daily_al1_20min/' 'https://plaacedatalakegen2.blob.core.windows.net/teliamovement?<SASKEY>' --recursive=true

并得到这个结果错误:

INFO: Scanning...
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
failed to perform copy command due to error: cannot start job due to error: cannot scan the path /Users/peder/Downloads/https:/storage.googleapis.com/telia-ddi-delivery-plaace/activity_daily_al1_20min, please verify that it is a valid.

在我们看来,azcopy 将源解释为本地文件目标,因此添加了我们 运行 它的当前位置:/Users/peder/Downloads/。但是我们无法找到任何参数来表明它是一个 Web 位置,并且它与本指南中的文档相同:

azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true

我们尝试过的:

是不是我们的命令有问题?还是自从编写指南以来,azcopy 已被更改?

我还在 Azure 文档 git 页面上为此创建了一个问题:https://github.com/MicrosoftDocs/azure-docs/issues/78890

您 运行 陷入此问题的原因是 URL storage.cloud.google.com 在 Google 云存储的应用程序源代码中进行了硬编码。从这个 link:

const gcpHostPattern = "^storage.cloud.google.com"
const invalidGCPURLErrorMessage = "Invalid GCP URL"
const gcpEssentialHostPart = "google.com"

由于您使用的是 storage.googleapis.com 而不是 storage.cloud.google.com,azcopy 无法将其识别为有效的 Google Cloud Storage 端点,并将该值视为目录之一在您的本地文件系统中。