Google Computer Engineでエラーpscp: remote filespec ~/: not a directory

Published on:
Last updated:

This post is also available in: 日本語 (Japanese)

Cloud EndpointsをGoogle Computer Engineで試そうとして、公式のクイックスタートを進めている際に出くわしたエラーで、メモ代わりに書き留めています。

クイックスタート中にある、ローカルにあるサンプルAPIのファイルをCompute Engineのインスタンスにコピーするという、以下の部分です。

gcloud compute copy-files * [INSTANCE-NAME]:~/
#=> pscp: remote filespec ~/: not a directory

ローカルの環境がWindowsの場合に起こるっぽいエラーで、普通に考えれば当然でLINUXでは「~/」はホームディレクトリを指しますが、Windowsでは「~/」ではホームディレクトリに移動できないです。
Windowsは 「C:\Users\ユーザ名(WikipediaによるとWindows Vista以降は)」 がホームディレクトリ的な概念となってるそうです。

なので、Google Computer Engineにファイルをコピーするには以下のようにすることで可能です。
(コマンドプロンプトでカレントディレクトリ移動して、そのディレクトリ内のファイルをComputer Engineにコピーしてます)

cd C:\Users\ユーザ名\python-docs-samples\endpoints\getting-started
gcloud compute copy-files * sample-instance:

もしくは別の方法として「C:\Users\ユーザ名」を「\Users\ユーザ名」と置き換えて、以下のようなコマンドで対応しても上手く行くと思います。

gcloud compute copy-files * sample-instance:"\Users\ユーザ名\python-docs-samples\endpoints\getting-started"

About
Kuniyoshi Takemoto is the founder of Amelt.net LLC, and editor of this blog(www.amelt.net).Learn more and follow me on LinkedIn.