S3 のファイルをあいまい検索で操作できる s3fzf という CLI ツールをつくった
デモ
こんな感じ。
fzf 風にバケットの選択 -> ファイルの選択を行うことができます。
インストール
$ go get -u github.com/kou-pg-0131/s3fzf
使い方
$ s3fzf --help
NAME:
s3fzf - Fuzzy Finder for AWS S3.
USAGE:
s3fzf <command> [options]
COMMANDS:
cp Copy S3 object to local.
rm Delete an S3 object.
GLOBAL OPTIONS:
--help, -h show help. (default: false)
cp
S3 のファイルをローカルに取得します。
デフォルトでは取得したファイルの内容は標準出力に出力されます。
ファイルとして出力したい場合は --output
オプションに出力先を指定してください。
--bucket
オプションにバケット名を指定することでバケットの選択をスキップできます。
--profile
オプションで使用する AWS プロファイル名を指定できます。
$ s3fzf cp --help
NAME:
s3fzf cp - Copy S3 object to local.
USAGE:
s3fzf cp [options]
OPTIONS:
--bucket value, -b value name of the bucket containing the objects.
--profile value, -p value use a specific profile from your credential file.
--output value, -o value file path of the output destination. if not specified, output to stdout.
--help, -h show help. (default: false)
rm
S3 のファイルを削除します。
デフォルトでは削除前に確認します。
確認をスキップしたい場合は --no-confirm
オプションを指定します。
また、 cp
コマンドと同様に --bucket
, --profile
オプションも使用できます。
NAME:
s3fzf rm - Delete an S3 object.
USAGE:
s3fzf rm [options]
OPTIONS:
--bucket value, -b value name of the bucket containing the objects.
--profile value, -p value use a specific profile from your credential file.
--no-confirm skip the confirmation before deleting. (default: false)
--help, -h show help. (default: false)
実装について
fzf 風の挙動の実装には ktr0731/go-fuzzyfinder を使用しています。
ホットリロードやプレビュー機能等まで簡単に実装できる非常に便利なライブラリです。