google-cloud-platform - 如何将文件从谷歌计算引擎复制到本地目录

标签 google-cloud-platform google-compute-engine

我正在尝试使用以下命令将文件从我的实例复制到我的本地目录

gcloud compute scp <instance-name>:~/<file-name> ~/Documents/
但是,它显示如下错误

$USER/Documents/: Is a directory

ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].


从本地目录复制到 GCE 工作正常。
我也检查了斯坦福的教程和谷歌的文档。
我还有另一个例子,没有这样的问题。
我有点相信这可能是 SSH key 的问题。
可能出了什么问题?

最佳答案

如果源路径和目标路径正确,则命令正确

将文件从 Google Compute Engine VM 复制到我的本地计算机时,您在问题中发布的命令对我有用。

$ gcloud compute scp vm1:~/.bashrc ~/Documents/
.bashrc                                          100% 3515     3.4KB/s   00:00

我还尝试从另一端(即从我的本地机器到 GCE VM)进行复制,并且它有效:
$ gcloud compute scp ~/Documents/.bashrc vm1:~/temp/
.bashrc                                          100% 3515     3.4KB/s   00:00

$ gcloud compute scp ~/Documents/.bashrc vm1:~/.bashrc-new
.bashrc                                          100% 3515     3.4KB/s   00:00
gcloud依赖于 scp可执行文件存在于您的 PATH .您提供给 gcloud scp 的参数命令被传递到 scp二进制。假设您的源路径和目标路径是正确的,它应该可以工作。

使用 scp 进行递归复制

但是,根据您的特定错误消息,我已经看到只有当您尝试从中复制的源路径是目录而不是文件时才会出现这种变化。对于这种特殊情况,您可以传递 --recurse参数(类似于常规 -r 支持的 scp 参数),它将递归复制指定目录下的所有文件和目录。
gcloud compute scp --recurse SRC_PATH DEST_PATH

关于google-cloud-platform - 如何将文件从谷歌计算引擎复制到本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44982313/

相关文章:

loops - Terraform for_each,计数索引

java - 如何使用 google ml api 修复无效范围(400 错误请求)

javascript - "Invalid value at ' 密文 ' (TYPE_BYTES)"

google-cloud-platform - 使用 TaggedOutputs 的数据流中断, "can' t pickle WeakDictionary”

shell - packet_write_wait : Connection to xxx. xxx.xxx.xxx:管道损坏

ruby-on-rails - nginx 错误 : (13: Permission denied) while connecting to upstream)

java - 在 Google Compute Engine VM 上执行 Java 文件

Google Compute Engine 集群上的 hadoop -appendToFile

ssh - SSH到我的计算引擎机器

docker - 如何将 Docker Hub 镜像拉到 Google Cloud Run?