我尝试使用此代码,但是没有用。
gcloud compute ssh user@ftp.example.com --zone my_zone \
--command='gsutil cp path/to/my_file gs://MY_BUCKET'
我也尝试通过http请求甚至从服务器复制文件,但没有结果。我已将文件公开,并尝试了此代码。
gsutil cp http://example.com/dir1/ gs://MY_BUCKET
我收到错误消息,例如无法识别http。
我还可以通过ssh访问远程服务器。
答案 0 :(得分:0)
您应该做的不是普通副本,而是scp保护的副本。
/stores?filter[stores][name.en][EQ]=mystore
使用scp命令在虚拟机实例和本地计算机之间安全地复制文件。
有关所有可用开关和说明的更多信息,请参见在线docs
答案 1 :(得分:0)
gsutil cp
允许您按照以下文档流式处理从stdin接收到的数据:https://cloud.google.com/storage/docs/gsutil/commands/cp粘贴在下面:
流传输使用“-”代替src_url或dst_url来执行 流传输。例如:
long_running_computation | gsutil cp-gs:// my-bucket / obj流 使用JSON API上传的内容(请参见gsutil帮助api)被缓存在 内存部分返回文件,因此可以在发生以下情况时重试 网络或服务问题。
使用此方法,我们可以将远程服务器的scp副本流传输到标准输出(如果您使用的是Linux或Mac),然后将其通过管道传输到gsutil cp中,如下所示:
scp <USER>@<YOUR_SERVER>:/<PATH>/<FILE_NAME> /dev/stdout | gsutil cp - gs://<BUCKET_NAME>/<FILE_NAME>
答案 2 :(得分:0)
结合其他答案,要将文件从Compute Engine实例复制到Google Cloud Storage,您需要以下命令:
gcloud compute scp --zone [ZONE] [USER]@[INSTANCE_NAME]:/path/to/file /dev/stdout | gsutil cp - gs://[BUCKET_NAME]/[FILE_NAME]
如果文件位于Compute Engine实例以外的远程服务器中,则可以使用Nicholas所说的“ scp”。