【问题标题】:Transferring Files via the Google Cloud SDK shell?通过 Google Cloud SDK shell 传输文件?
【发布时间】: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


【解决方案1】:

据我所知,您在指定主目录时是多余的,首先是 ~,最后是 /home/abri。在 linux 中,~ 代表主目录,因此您可以简单地将其指定为目标文件夹,如下所示:

gcloud compute scp C:\Users\abri\Desktop\__Main__\__recreational__\Art\aloe_fractal.jpg sugar:~/

尝试运行上述命令,查看文件是否传输成功。当你 ssh 进入虚拟机实例时,你应该直接被带到文件应该驻留的主目录,如果没有,运行 cd ~ 去那里。

【讨论】:

  • 'code'C:\Users\abri\AppData\Local\Google\Cloud SDK>gcloud compute scp C:\Users\abri\Desktop__Main____recreational__\Art\aloe_fractal.jpg sugar:~/ No zone指定的。例如使用区域 [us-central1-a]:[sugar].'code'
  • 你能用--verbosity=debug 运行它并提供输出吗?还要检查您是否还没有同名的文件。如果所有其他方法都失败了,请尝试运行它,同时在前面加上 sudo
【解决方案2】:

有两种方法可以将文件从本地主机上传到 Cloud Shell。

  1. 使用 Cloud Shell 用户界面

  1. 今天得知有gcloud alpha cloud-shell scp命令:
gcloud alpha cloud-shell scp \
  localhost:path/to/freddie.jpg \
  cloudshell: --project=${PROJECT}

该命令与标准 scp 略有不同。使用包装器gcloud alpha cloud-shell scp,您必须指定源机器和目标机器,其中一台必须是localhost:,一台必须是cloudshell:

您可能需要在${PROJECT} 中启用cloudshell 服务。如有必要,系统会提示您,或者:

gcloud services enable cloudshell.googleapis.com \
--project=${PROJECT}

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多