2017-07-02 114 views

回答

1

您也可以直接在您的GCE虚拟机上执行gsutil命令(大多数虚拟机映像预先安装了Cloud SDK)。例如:

gcloud compute ssh [email protected] --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-platformhttps://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_write。如果没有,您可以使用 set-scopes beta command重置它们或转到控制台并编辑有问题的虚拟机。

+1

啊,好主意,这比通过本地主机管道一切都高效得多。只有注意,只要记住,这将使用GCE VM上的gsutil配置,而不是本地配置。特别是它可能会使用GCE VM的服务帐户凭证而不是您的个人凭证。这并不一定是坏的,只是需要注意的一点。 (如果您的个人凭证无法直接访问存储桶,则可能更可取,这是一项很好的安全措施。) –

0

的gsutil支持流数据,所以你可以尝试管道入数据。

不是100%肯定这可与任意的二进制数据(我在手机上,所以我不能测试它)

gcloud compute ssh [email protected] --command='cat /path/to/file' | gsutil cp - gs://my-bucket 
相关问题