如何将文件从远程服务器复制到谷歌存储桶?例如,将文件从远程服务器复制到谷歌云存储桶
gcloud compute scp [email protected]:/path/to/file gs://my-bucket
此方法给出了错误:All sources must be local files when destination is remote.
此外,GSUtil的仅提供用于CP和不SCP支持。
在此先感谢!
如何将文件从远程服务器复制到谷歌存储桶?例如,将文件从远程服务器复制到谷歌云存储桶
gcloud compute scp [email protected]:/path/to/file gs://my-bucket
此方法给出了错误:All sources must be local files when destination is remote.
此外,GSUtil的仅提供用于CP和不SCP支持。
在此先感谢!
您也可以直接在您的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-platform
或https://www.googleapis.com/auth/devstorage.full_control
或https://www.googleapis.com/auth/devstorage.read_write
。如果没有,您可以使用 set-scopes beta command重置它们或转到控制台并编辑有问题的虚拟机。
的gsutil支持流数据,所以你可以尝试管道入数据。
不是100%肯定这可与任意的二进制数据(我在手机上,所以我不能测试它)
gcloud compute ssh [email protected] --command='cat /path/to/file' | gsutil cp - gs://my-bucket
啊,好主意,这比通过本地主机管道一切都高效得多。只有注意,只要记住,这将使用GCE VM上的gsutil配置,而不是本地配置。特别是它可能会使用GCE VM的服务帐户凭证而不是您的个人凭证。这并不一定是坏的,只是需要注意的一点。 (如果您的个人凭证无法直接访问存储桶,则可能更可取,这是一项很好的安全措施。) –