【发布时间】:2020-01-29 05:40:55
【问题描述】:
我已经从谷歌云控制台创建了一个实例 (vm)。使用命令gcloud compute ssh [INSTANCE] 连接工作正常。
我可以退出实例 shell,然后返回到 Google Cloud SDK Shell。
之后在 Google Cloud SDK shell 中我运行命令glcoud compute scp [ABS_FILE_PATH] [INSTANCE]
文件上传成功,
aloe_fractal.jpg | 99 kB | 99.1 kB/s | ETA: 00:00:00 | 100%
但是当我打开实例外壳并导航到上传的文件目录时,没有文件?
gcloud compute scp C:\Users\abri\Desktop\__Main__\__recreational__\Art\aloe_fractal.jpg sugar:~\home\abri
未指定区域。使用区域 [us-central1-a] 例如:[sugar]。
aloe_fractal.jpg | 99 kB | 99.1 kB/s | ETA: 00:00:00 | 100%
abri@sugar:~/filefolder$ dir
abri@sugar:~/filefolder$
***no 'aloe_fractal.jpg' file'
可能的原因是什么,并且在使用 Google Cloud SDK shell 进行本地到远程文件传输时,是否有其他人遇到过这个问题。
【问题讨论】:
-
我很困惑。您似乎引用了 3 个不同的实例:Cloud Shell、您的 VM 和 Windows 机器。虚拟机是否运行 Windows?如果我理解正确,您可以
scp将文件从 Cloud Shell 实例发送到虚拟机(正确吗?)但是当您尝试从 Windows 机器到虚拟机时这不起作用?如果是这样,我怀疑(我没有尝试过)在 Windows 中使用 gcloud 的scp命令存在一些问题,或者因为您使用的是 Windows 文件系统 (c:\Users\abri...) 参考。 -
虚拟机正在运行 Linux。是的,我可以将文件从 Cloud Shell scp 到 VM 实例。但是当我查看该实例的目录时,在 scp 命令中指定的 VM 实例路径中找不到确认上传到 Cloud Shell 中的文件。
-
明天早上我会看看这个然后报告。我还没有尝试过 Cloud Shell to|from 保险。对于 Linux,您应该使用“/”作为分隔符,
[[instance]]:的 dest 应该复制到用户的主目录。不要忘记确保也设置了--project,除非您确信所有内容都在同一个项目中。 -
是的,请尝试一下,看看您的经验能对此有何影响。我还确保通过命令设置项目 - gcloud config set project [PROJECT]
-
您也可以在命令行上明确使用
--zone=...和--project=...。这对我有用。我将我的狗 (freddie.jpg) 的照片上传到 Cloud Shell。我创建了一个实例instance-1。从 Cloud Shell,然后我gcloud scp ./freddie.jpg instance-1: --zone=${ZONE} --project=${PROJECT}。这成功了。然后我gcloud compute ssh instance-1 --zone=${ZONE} --project=${PROJECT}。这会将我带到我用户的主目录 (/home/$(whoami)),并且该文件的大小正确。
标签: cloud gcloud file-transfer scp