将文件从远程服务器复制到谷歌云存储桶

Jak*_*way 5 google-cloud-storage gsutil google-cloud-platform gcloud

如何将文件从远程服务器复制到谷歌存储桶?例如,

gcloud compute scp username@server:/path/to/file gs://my-bucket

这种方法给出了错误: All sources must be local files when destination is remote.

此外,gsutil 仅支持 cp 而不是 scp。

提前致谢!

che*_*rba 4

您还可以直接gsutil在 GCE VM 上执行命令(大多数 VM 映像都预装了 Cloud SDK)。例如:

gcloud compute ssh user@server --zone my_zone \
  --command='gsutil cp path/to/my_file gs://MY_BUCKET'
Run Code Online (Sandbox Code Playgroud)

请注意,要使其正常工作,与 VM 关联的服务帐户必须具有对 GCS 的适当访问范围。如果你跑

gcloud beta compute instances describe my_instance --zone my_zone \
  --format="value(serviceAccounts.scopes)"
Run Code Online (Sandbox Code Playgroud)

它将显示为 VM 服务帐户设置的范围列表。确保您有https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_write。如果没有,您可以使用 set-scopes beta 命令重置它们或转到控制台并编辑有问题的虚拟机。