読者です 読者をやめる 読者になる 読者になる

眠すぎて明日が見えない

我が人生、眠さに勝るもの無し

S3から複数のファイルを落としてくるコマンドをGoで作ってみた

programming

AwsConsoleでS3からファイル落とそうとすると,一個ずつポチポチしなきゃいけなくて辛いなーって思ったのでGoで書いてみました。※1

github.com

導入

1.aws configureでaccess_key_idとsercret_keyを設定

$ aws configure
AWS Access Key ID [NONE]: ***
AWS Secret Access Key [NONE]: ***

Regionとかも設定するように進められるけど、今はここで Tokyoに固定しちゃってます。

2.ビルドする

$ go get -d github.com/MacoTasu/g3
$ go build
$ go install

これでg3コマンドは使えるようになったはず。

使い方

使い方は簡単でbucketと落としてきたい対象のファイル or ディレクトリー名を指定するだけです。 コマンドを実行したカレントディレクトリに対象のファイル or ディレクトリーを作成します。

$ g3 get <bucketname> <target file or directory>
ex)
$ g3 get test  // バケット内のファイルを全て落としてくる
$ g3 get test test/hoge.png // testディレクトリを作成してhoge.pngを落とす
$ g3 get test test/ // testディレクトリを作成して、testディレクトリ以下全てのファイルを落とす
(※いずれの場合も上限1000個)

^のような感じに使えます。 正規表現とかでディレクトリ内のファイルの絞込できるともっと便利そうかなとブログ書きながら思った。

最後に

Goを初めて書いたのでコード中に良くないと思われる部分が多々あるかもれしません。 もっと良い書き方などあれば、後学のためにご指摘いただけると幸いです。

参考にした記事

※1.テストコードは書けていません