s3get
s3get
はワンバイナリでS3からファイルをダウンロードするためのツール。
AWS CLIを使わずにS3からファイルをダウンロードしたい場合に利用できる。
リポジトリ
livesense-inc/go-aws-s3getインストール
上記GitHubのページからReleasesへ移動し、動作環境に合わせたバイナリをダウンロードする。
実行権限をつけてパスの通ったディレクトリに配置すると使用できる。
例えばApple SiliconのmacOSで使う場合は以下のようにする。
$ curl -L https://github.com/livesense-inc/go-aws-s3get/releases/download/v0.2.0/s3get-darwin-arm64 -o s3get
$ chmod +x s3get
$ ./s3get --version
s3get version 0.2.0 (rev:8ca0265)
使い方
以下のコマンドでs3://バケット名/path/to/file
のファイルをダウンロードしてファイル名
に保存する。
s3get -i アクセスキー -s シークレットキー -r リージョン s3://バケット名/path/to/file ファイル名
アクエスキー、シークレットキー、リージョンはAWS CLIなどのAWS関連ツールと同様、環境変数AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
、AWS_REGION
で指定できる。
export AWS_ACCESS_KEY_ID=アクセスキー
export AWS_SECRET_ACCESS_KEY=シークレットキー
export AWS_REGION=リージョン(ap-northeast-1など)
ダウンロードファイルを標準出力へ直接流す
AWS CLIのs3
サブコマンドと同様に出力ファイル名の部分で-
を指定すると、ダウンロードしたファイルを標準出力へ直接流せる。
参考: AWS CLIでS3のファイルをcatしたい
例
$ s3get -i アクセスキー -s シークレットキー -r リージョン s3://バケット名/path/to/file - | grep "2023-03-29 10:00" | less
S3にシェルスクリプトを置いておいて、それをダウンロードして実行する、といった使い方をすると便利。
$ s3get -i アクセスキー -s シークレットキー -r リージョン s3://バケット名/path/to/script.sh - | bash
この方法であればダウンロードしたファイルを削除する必要がないため、一時ファイルを作成しないで済む。
\手を動かしながらTerraformを学びたい人にオススメ!/