LoginSignup
3
2

More than 1 year has passed since last update.

gsutil で GCS から S3 にファイルを移動したい

Last updated at Posted at 2021-06-19

準備

サービスアカウント用意

該当するGCSにアクセスできるサービスアカウントを用意する。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134323236332f34643866396235322d613233362d626163362d643363322d3234653764613266646437322e706e67.png

鍵ファイル(JSON)を作成しダウンロード。/tmp にでも置いとく。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134323236332f30313939383334352d393838332d616435382d343162652d3034383962333830396265632e706e67.png

cp ~/Downloads/test-gcs-to-s3-key.json /tmp

Botoファイル用意

gsutil コマンドに AWS のクレデンシャルを読ませる必要があるので Boto ファイルを用意。
これも /tmp にでも置いておく。

less /tmp/.boto
[Credentials]
aws_access_key_id = xxx
aws_secret_access_key = yyy

[s3]
use-signv4=True
host=s3.ap-northeast-1.amazonaws.com

言わずもがな上記のクレデンシャルは移動先のS3へアクセスできる権限が必要。
発行手順は割愛。

やってみる

GCPにログイン

サービスアカウントの鍵を使ってGCPにログイン。

gcloud auth activate-service-account --key-file /tmp/test-gcs-to-s3-key.json
gcloud config set project my-project

gsutil 実行

BOTO構成ファイルのパスを環境変数に設定して gsutil コマンドを打てばオケ。

export BOTO_CONFIG=/tmp/.boto

gsutil -m rsync -rdc \
  gs://my-gcs-bucket/subdir \
  s3://my-s3-bucket/subdir

おわり。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2