如何将文件从远程服务器复制到Google云存储?

时间:2019-09-19 09:22:51

标签: google-cloud-platform google-cloud-storage

我尝试使用此代码,但是没有用。

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访问远程服务器。

3 个答案:

答案 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”。