サーバ上のファイルをs3に移動させたいと考えて、aws cliを使ったときのコマンドについてまとめる。
【前提条件】
cliセットアップ時に登録したaccess key IDを持つユーザが対象のs3 bucketにアクセスできるようになっていること。
【コマンド】
●ファイル名が一致するもののみアップロードしたい場合
aws s3 cp (アップロードしたいファイルがあるディレクトリパス) s3://(アップロード先のbucket)/ --recursive --exclude "*" --include "*(アップロードするファイル名に含まれる文字列)*"
- —recursive は再帰的に処理を行うという意味。下位のディレクトリも対象にするのかどうかはまだ未検証。
- —exclude は指定したファイルは対象外とする。
- —include は指定したファイルを対象とする。
- excludeとincludeの順番で、優先度が変わるのかも?これの検証もしていない。
ex)
aws s3 sync /tmp/user s3://s3bucketname/filefolder/ –recursive –exclude “*” –include “*201806*”
→ /tmp/user 配下の「201806」を名前に含むファイルを対象として、s3bucketnameバケットのfilefolder配下にアップロードする。
●特定のフォルダ配下を全て再帰的にアップロードしたい場合
aws s3 sync (アップロードしたいファイルがあるディレクトリパス)/ s3://(アップロード先のbucket)/(ファイルアップロード先のディレクトリ)/
ex)
aws s3 sync user/ s3://s3bucketname/user/
→ 相対パスで user 配下のファイルをs3bucketnameバケットのuser 配下にアップロードする。