s3cmdの使い方

Amazon S3コマンドラインクライアント、s3cmd の使い方。

インストール編

Mac の場合

$ brew install s3cmd

Amazon Linux の場合

デフォルトだと epel リポジトリが無効なため --enablerepo をつける

$ yum --enablerepo epel search s3cmd
$ sudo yum -y --enablerepo epel install s3cmd

設定

通常権限で実行するため、ユーザーディレクトリ配下に .s3cfg という設定ファイルが作られる

$ s3cmd --configure
  Access Key: <アクセスキー>
  Secret Key: <シークレットキー>
  Encryption password: 
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: False
  HTTP Proxy server name: 
  HTTP Proxy server port: 0

接続テスト

$ s3cmd info s3://<バケット名>

ファイルのアップロード

1ファイルの場合。

$ s3cmd put index.html s3://<バケット名>


複数ファイルなら同期を行う sync コマンドが便利。

カレントディレクトリをアップロード

$ s3cmd . sync s3://<バケット名>

.git などの接頭辞にドットがつくファイルを正規表現で除外してアップロード
正規表現じゃなくていい場合は --exclude を使う

$ s3cmd sync --rexclude '^\.' . s3://<バケット名>

ドライラン(出力だけして実際にはアップロードしない)も可能

$ s3cmd sync --dry-run . s3://<バケット名>