【问题标题】:How can I copy data in GCP from a public Cloud Storage bucket to my own bucket?如何将 GCP 中的数据从公共 Cloud Storage 存储桶复制到我自己的存储桶?
【发布时间】:2020-01-10 13:03:23
【问题描述】:

问题

按照 GCP Automl Vision 快速入门 (https://cloud.google.com/vision/automl/docs/edge-quickstart), 我正在尝试使用 google cloud shell 中的以下代码将示例图像复制到我自己的存储桶中:

gsutil -m cp -R gs://cloud-ml-data/img/flower_photos/ gs://${BUCKET}/img/

但是我得到以下错误:

CommandException:“cp”命令不支持提供者专用 URL。

如何解决?

非常感谢。

乔瓦尼

【问题讨论】:

  • 我对您在我的系统上的确切命令没有任何问题。您使用的是什么版本的 gsutil?必要时更新。您是独立运行 gstutil 还是作为 SDK 的一部分运行?用更多细节更新您的问题。将命令范围缩小到失败的单个文件传输。然后添加-d选项来调试一次传输。
  • 命令echo $BUCKET的结果是什么?这是打印您的存储桶名称吗?
  • 嗨,@John Hanley 和 guillaume blaquiere 非常感谢您的回复!通过您的回复,我能够解决问题。再次感谢。乔瓦尼
  • @Giovanni,既然您通过 John Hanley 和 guillaume blaquiere 提供的建议找到了解决方案,您能否将其发布为答案,以便其他可能遇到相同问题的用户更容易找到它?

标签: google-cloud-platform nlp


【解决方案1】:

当您的 BUCKET_NAME 值为空白时,可能会发生这种情况(使用 echo $BUCKET_NAME 检查)。

使用

为 BUCKET_NAME 设置一个值
export BUCKET_NAME=<bucketName>

使用检查值:

echo $BUCKET_NAME

【讨论】:

    【解决方案2】:

    请勿在存储桶名称中使用 {}

    BUCKET_NAME = 'my_bucket'
    

    代替

    gsutil cp some.txt gs://${BUCKET_NAME}
    

    错误信息 CommandException:“cp”命令不支持提供者专用 URL。

    在下面使用 -- 删除大括号 {}

    gsutil cp some.txt gs://$BUCKET_NAME 
    

    输出

    Copying file://sa.enc [Content-Type=application/octet-stream]...
    / [1 files][  2.4 KiB/  2.4 KiB]                                                
    Operation completed over 1 objects/2.4 KiB.
    

    【讨论】:

    • 这在脚本中运行时帮助了我。我从文档中获得了 ${},它在作为 args 的一部分直接在 cloudbuild 中执行时似乎有效。
    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2019-02-17
    • 2017-07-06
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多