permissions - 无法将文件从谷歌云存储桶复制到虚拟机实例
问题描述
我正在尝试将文件从云存储桶传输到 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
但我找不到任何文件并且磁盘卷没有改变。谁能解释为什么会发生这种情况以及如何从云中复制文件?谢谢。
解决方案
创建服务帐户链接:
gcloud iam service-accounts create transfer --description "transfer" --display-name "transfer"
设置一个新实例以作为服务帐户运行:
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
通过 SSH 连接到 VM 实例:
gcloud beta compute --project "my-project" ssh --zone "us-central1-a" "instance"
复制文件:
gsutil cp gs://bucket/file.csv .
列出文件:
ls file.csv
推荐阅读
- php - 签名亚马逊集成问题
- python - virtualenv pip 不升级
- architecture - 像 RabbitMQ 这样的队列服务如何在集群上运行?
- apache-spark - Spark -- 从 Spark 2.3 的 SQL Server 返回标识值
- python - 从多个日期获取平均日期 - 熊猫
- php - PhpSpreadsheet foreach 循环通过多个工作表
- javascript - 我可以在内容加载时显示组件吗?- 角2+
- docker - 从开发机器上 Service Fabric 上的 Docker 容器访问反向代理
- amazon-web-services - 找不到命令:Amazon Linux 2018.03 上的 systemctl
- python - 在python中创建并行for循环