悪魔は優しい

なんでもやるし、なんにもできないIT屋メモ。

Google Cloud Strageにファイル転送。linuxから。バケット間の移動。

calendar

reload

Google Cloud Strageにファイル転送。linuxから。バケット間の移動。

Google Cloud Storageにローカルからファイル転送

gsutilを使う。
gsutilが入っていない人はインストールしてください。

gsutil config

とすると、こんな風に出る。

CommandException: OAuth2 is the preferred authentication mechanism with the Cloud SDK.
Run "gcloud auth login" to configure authentication, unless:
- You don't want gsutil to use OAuth2 credentials from the Cloud SDK,
  but instead want to manage credentials with .boto files generated by
  running "gsutil config"; in which case run "gcloud config set
  pass_credentials_to_gsutil false".
- You want to authenticate with an HMAC access key and secret, in
  which case run "gsutil config -a".

手っ取り早く認証したいなら、gcloudでログインしろと。そこで、

gcloud auth login

を実行するとURLが帰ってくるので、そのURLにブラウザからアクセスする。
ブラウザに認証コードが表示されるので、

Enter verification code:

の後にコピペ。すると、

WARNING: `gcloud auth login` no longer writes application default credentials.
If you need to use ADC, see:
  gcloud auth application-default --help

You are now logged in as [kenji_oishi@cognivision.jp].
Your current project is [mymltest-195701].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID

と表示されるので、素直に

gcloud config set project (プロジェクトID)

を入力(プロジェクトID)には、GCPでstorageに紐づけたプロジェクトIDを入力した。
名前じゃなくてID。

Updated property [core/project].

と表示される。以降アクセスできる。
例えば、

gsutil cp C1* gs://trainimages/

とかやるとファイルをコピーできる。

ちなみに、同じファイル名をcpすると上書きされた。

Google Cloud Storageのバケット間でオブジェクトを移動

バケット間の移動は、

gsutil -m mv gs://trainimages/* gs://trainimages2/

とする。

Google Cloud Storageのバケット内のファイル数をカウント

ファイル数をカウントするには、

gsutil ls -l gs://trainimages2/ | wc -l

ができたよ。

どうやら、mvが途中で切れてて、44万枚ある転送ファイル数が9万枚しか転送されていませんでしたので、やりなおし(泣)

この記事をシェアする

コメント

コメントはありません。

down コメントを残す