スキップしてメイン コンテンツに移動

投稿

ラベル(gsutil)が付いた投稿を表示しています

cloud storageのファイルをインターネット上に外部公開するときによく使うgsutilコマンド

リージョン指定してバケットを作成 # -b: バケットレベルのアクセス権限を設定する場合はon。onにすると、オブジェクト単位のACLの設定は無視される。 # -l: バケットのリージョン指定 gsutil mb -b on -l asia-northeast1 gs://{バケット名}/ バケットを外部から認証なしで読み取れるようにする。 gsutil defacl set public-read gs:// { バケット名 } http(s)アクセスされたときのhttpヘッダーの Cache-Control を変更。下記の例では、 max-age を1年(=31536000秒)に設定 # ワイルドカード(*)指定の場合 gsutil -h "Cache-Control:public, max-age=31536000" gs:// { バケット名 } / { ディレクトリ } /* # -rの再帰オプション指定の場合 gsutil -r -h "Cache-Control:public, max-age=31536000" gs:// { バケット名 } / { ディレクトリ } Cloud Storageのキャッシュ設定を こちらの記事 が参考になりました。

gsutilでローカルとCloud Storage上のファイルを同期

gsutilコマンドを使ってGoogle Cloud Storage上のファイルを同期するには、rsyncオプションをつけて、下記のコマンドを実行します。 # -m サポートされている操作(acl ch、acl set、cp、mv、rm、rsync、setmeta)を並行実行して実行時間を短くする # -d 同期先にあって同期元(ローカル)に存在しないファイルを同期先から削除する # -r 再帰的にディレクトリ内のファイルを対象にする gsutil -m rsync -d -r { 同期元のディレクトリ } gs:// { バケット名 } / { 同期先のパス }

Google Cloud Storageでクラウド上にあるファイルをローカルにあるファイルと同期させる方法

Linuxのrsyncコマンドのようにクラウド上にあるファイルをローカルにあるファイルと同期させるには、下記のコマンドを実行すればOKです。 gsutil -m rsync -r source gs://bucket/dest rsync: Linuxコマンドのrsyncのようにファイルを同期させるためのコマンド -m: multi-threaded/multi-processingの意味で並列で複数のファイルを同期させるためのオプション -r: recursiveの意味で再帰的にディレクトリ内のファイルを同期させるためのオプション