AWS CLIで標準入出力でS3オブジェクトを操作する方法
標準入力からアップロード
$ echo 'hogehoge' | aws s3 cp - s3://<bucket-name>/<object-key>
標準出力へダウンロード
$ aws s3 cp s3://<bucket-name>/<object-key> -
ご覧の通り、 -
を引数として渡すとそれぞれ標準入出力が使われます。既に周知かと思いますが、僕は知りませんでした。普段からちょっとしたファイルの操作をする時に、いちいち物理ファイルを経由していました。なので備忘録として残しておきます。
s3 cp
のヘルプを見ると一番最後に書いてあります(分かりづらい):
Uploading a local file stream to S3
...
The following cp command uploads a local file stream from standard
input to a specified bucket and key:
aws s3 cp - s3://mybucket/stream.txt
Downloading an S3 object as a local file stream
...
The following cp command downloads an S3 object locally as a stream to
standard output.
aws s3 cp s3://mybucket/stream.txt -
因みに、PowerShellで実行するとCRLFのエンコーディングが変更されたり、またはそれ自体が追加される事があるらしいです。また、ダウンロード時は --recursive
による、特定キー以下の再帰DLはサポートされないみたい(当たり前だが)なので、いずれも要注意。
コメントを残す