首页 > 解决方案 > 无法将文件从谷歌云存储桶复制到虚拟机实例

问题描述

我正在尝试将文件从云存储桶传输到 VM 实例。

我通过 SSH 连接到 VM 实例,并使用如下 gsutil 代码:

gsutil cp gs://[桶名]/[文件名] /home

然后发生错误

复制 gs://huji/final-project-deep-learning-19-tf.tar... OSError: Permission denied。吉布]

所以我尝试了这个命令:

sudo gsutil cp gs://[桶名]/[文件名] /home

然后,下载完成。

复制 gs://huji/final-project-deep-learning-19-tf.tar... | [1 个文件][1.7 GiB/1.7 GiB] 76.2 MiB/s

但我找不到任何文件并且磁盘卷没有改变。谁能解释为什么会发生这种情况以及如何从云中复制文件?谢谢。

标签: permissionscopycloudtransfer

解决方案


  1. 创建服务帐户链接

    gcloud iam service-accounts create transfer --description "transfer" --display-name "transfer"
    
  2. 设置一个新实例以作为服务帐户运行:

    gcloud compute instances create instance --service-account transfer@my-project.iam.gserviceaccount.com --scopes https://www.googleapis.com/auth/devstorage.full_control
    

例如,对 Cloud Storage 的完全访问权限范围是 https://www.googleapis.com/auth/devstorage.full_control。此范围的别名是 storage-full

  1. 通过 SSH 连接到 VM 实例:

    gcloud beta compute --project "my-project" ssh --zone "us-central1-a" "instance"
    
  2. 复制文件:

    gsutil cp gs://bucket/file.csv .
    
  3. 列出文件:

    ls
    file.csv
    

推荐阅读