gcloud计算副本文件实例目的地?

时间:2014-11-06 09:08:40

标签: upload gcloud

我无法从实例复制文件,尤其是复制实例。我在实例中创建了instance.txt(使用SSH),但这不起作用:

C:\test>gcloud compute copy-files instance-4:~/instance.txt . --zone us-central1-b
Passphrase for key "censoredbyme":
unable to identify instance.txt: no such file or directory
ERROR: (gcloud.compute.copy-files) [C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\bin\sdk\scp.EXE] exited with return code [1].

编写完整路径有效:

C:\test>gcloud compute copy-files instance-4:/home/stefan_pochmann_gmail_com/instance.txt . --zone us-central1-b
Passphrase for key "censoredbyme":
instance.txt              | 0 kB |   0.0 kB/s | ETA: 00:00:00 | 100%

为什么〜/不起作用?文档示例使用它,它不应该是相同的吗?参见:

stefan_pochmann_gmail_com@instance-4:~$ cd ~/
stefan_pochmann_gmail_com@instance-4:~$ pwd
/home/stefan_pochmann_gmail_com

另一个方向根本不起作用(?):

C:\test>gcloud compute copy-files local.txt instance-4:/home/stefan_pochmann_gmail_com --zone us-central1-b
Passphrase for key "censoredbyme":
scp: unable to open /home/stefan_pochmann_gmail_com/local.txt: permission denied
ERROR: (gcloud.compute.copy-files) [C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\bin\sdk\scp.EXE] exited with return code [1].

C:\test>gcloud compute copy-files local.txt instance-4:/home/stefan_pochmann_gmail_com/ --zone us-central1-b
Passphrase for key "censoredbyme":
scp: unable to open /home/stefan_pochmann_gmail_com//local.txt: permission denied
ERROR: (gcloud.compute.copy-files) [C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\bin\sdk\scp.EXE] exited with return code [1].

为什么许可被拒绝?好吧,我尝试〜/而不是写完整的路径:

C:\test>gcloud compute copy-files local.txt instance-4:~/ --zone us-central1-b
Passphrase for key "censoredbyme":
local.txt                 | 0 kB |   0.0 kB/s | ETA: 00:00:00 | 100%

看起来就像它上传了文件一样,但文件不在那里。至少不在/ home / stefan_pochmann_gmail_com /我期待的地方。但我不知道因为我必须使用〜/在下载方向根本不起作用。我如何让它工作?

3 个答案:

答案 0 :(得分:5)

在这种情况下,Google Cloud SDK正在按预期工作。

当您第一次尝试使用gcloud compute命令时,它会告诉您“您没有Google Compute Engine的SSH密钥”并且它会创建私钥,公钥(.pub)和PuTTY格式密钥(.ppk)通常位于C:\Users\<username>\.ssh\目录中(不同Windows版本之间可能不同)。

如果您打开google_compute_engine.pub文件,最后您将找到用于访问实例的用户名。此用户名与您在执行gcloud命令时记录的本地用户名相匹配。

如果您想运行gcloud compute copy-files instance-4:~/instance.txt . --zone us-central1-b,可以按照以下步骤操作: 1-转到开发人员控制台 - &gt;选择你的项目 - &gt; Compute-&GT;计算引擎 - &gt;元数据 - &gt; SSH密钥 - &gt;编辑并修改SSH密钥,左侧显示Stefan,键入stefan_pochmann_gmail_com,而不是密钥内容末尾的Stefan。

答案 1 :(得分:4)

好的,我刚解决了。我的本地帐户是“Stefan”,gcloud在实例中使用了/ home / Stefan〜(bug?)。这解释了错误,上传的文件最终成为/home/Stefan/local.txt(使用/ home / Stefan以及新创建的用户“Stefan”拥有的所有内容。我必须使用sudo删除它)。在实例名称工作之前添加“stefan_pochmann_gmail_com @”。

答案 2 :(得分:2)

如果您要将文件从本地计算机复制到Google云端实例(gcloud)

然后使用以下命令:

gcloud compute scp [file location] [user]@[instance]:~/[location] --zone [zone name]

例如:

gcloud compute scp ~/Documents/hello.txt john@linux:~/MyFiles --zone us-east1-b