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

記事公開日:
最終更新日:

This post is also available in: English-US (英語)

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
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報TwitterLinkedIn、またRSSfeedlyにてお知らせしていますのでフォローよろしくお願い致します。