酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

s3cmdを使ってローカルファイルをAmazon S3へアップロードする

メモ。あとで説明を書く。

configを指定する

デフォルト設定は、.s3cfgを指定される。 別のアクセスキーなどを使いたい場合には.s3cfgをコピーして、アクセスキーを書き換えりすれば良い。

デフォルト設定以外の場合は、-c /PATH/hoge.s3cfgを指定する。 例えばhoge.s3cfgを使ってバケットの一覧を取得する場合には下記のようにコマンドの前に追加する。

s3cmd -c /Users/ch3cooh/hoge.s3cfg ls

バケットの一覧を取得する

$ s3cmd ls 

2017-01-23 00:42  s3://sub1.example.co
2013-04-09 05:53  s3://sub2.example.co

指定したバケットに格納されているファイルの一覧を取得する

$ s3cmd ls s3://sub1.example.co

                       DIR   s3://sub1.example.co/css/
2017-02-11 16:18      9540   s3://sub1.example.co/index.xml
2017-02-11 16:18      1168   s3://sub1.example.co/sitemap.xml

指定したローカルディレクトリから指定したバケットへファイルをアップロードする

$ s3cmd sync /Users/ch3cooh/DIR_PATH/ s3://sub1.example.co/

upload: '/Users/ch3cooh/DIR_PATH/.DS_Store' -> 's3://sub1.example.co/.DS_Store'  [1 of 28]
 6148 of 6148   100% in    0s    66.94 kB/s  done
Done. Uploaded 504011 bytes in 4.0 seconds, 123.06 kB/s.

同期時にサーバーにないファイルを削除する

s3cmd --delete-removed sync /Users/ch3cooh/DIR_PATH/ s3://sub1.example.co/