如何将文件从远程服务器复制到Google存储桶?例如,
gcloud compute scp username@server:/path/to/file gs://my-bucket
此方法提供错误:All sources must be local files when destination is remote.
此外,gsutil仅支持cp而不支持scp。
提前致谢!
答案 0 :(得分:3)
您还可以在GCE VM上直接执行gsutil
命令(大多数VM映像都预装了Cloud SDK)。例如:
gcloud compute ssh user@server --zone my_zone \
--command='gsutil cp path/to/my_file gs://MY_BUCKET'
请注意,要使其运行,与VM关联的服务帐户必须具有适当的GCS访问范围。如果你运行
gcloud beta compute instances describe my_instance --zone my_zone \
--format="value(serviceAccounts.scopes)"
它将显示为VM服务帐户设置的范围列表。确保您有https://www.googleapis.com/auth/cloud-platform
或https://www.googleapis.com/auth/devstorage.full_control
或https://www.googleapis.com/auth/devstorage.read_write
。如果没有,你可以使用
set-scopes beta command重置它们或转到控制台并编辑有问题的VM。
答案 1 :(得分:-1)
gsutil支持流数据,因此您可以尝试管道数据。
不是100%肯定这适用于任意二进制数据(我在手机上,所以我无法测试它)
gcloud compute ssh username@server --command='cat /path/to/file' | gsutil cp - gs://my-bucket