hello-world
webエンジニアのメモ。とりあえずやってみる。

[aws]s3 lsで取得したファイルを更新日時順でソートする

公開日時

s3 lsコマンドを利用するとバケットに保存されているファイル情報を取得できます。

aws s3 ls bucket-name/path/to/

s3 lsのファイル順はファイル名によるソートであるため、例えば「日付 + ランダム値」の命名規則でファイルが作成された場合、以下のようになります。

aws s3 ls bucket-name/path/to/

2016-01-18 07:01:56          0 20160118_abcjdyckdj.txt
2016-01-18 07:02:14          0 20160118_ahwidygjeh.txt
2016-01-18 07:00:56          0 20160118_hmafkjhfsa.txt

これを「更新日時順にソート」したい場合、s3 lsコマンドのオプションにソートがなかったので、sortコマンドを組み合わせて並べ替えることにしました。

aws s3 ls bucket-name/path/to/ | sort -nr

2016-01-18 07:02:14          0 20160118_ahwidygjeh.txt
2016-01-18 07:01:56          0 20160118_abcjdyckdj.txt
2016-01-18 07:00:56          0 20160118_hmafkjhfsa.txt

nオプションで先頭を数値とみなしてソートすることで更新日時順にソートされます。 また、rオプションで降順にソートしています。

参考


Related #aws

AWS SAMを使って署名付きURL発行APIを作る

S3の署名付きURL発行機能の検証を兼ねて、S3のキーをパラメータとして受け取り、署名付きURLを発行するAPIを作ってみました。

s3cmdの設定をプロジェクト毎に管理する

以前、 s3cmdをmacで使う方法 を書きましたが、 プロジェクトごとに異なるバケットを使用している場合は設定ファイルもプロジェクト毎に管理したいです。

[aws]s3バケットにIP制限をかける

s3にはbasic認証を設定することはできないのですが、IP制限なら設定することができます。

[aws][mysql5.6]microインスタンス使用時にメモリ不足になったのでmysqlの設定を調整

AWSでt2.microインスタンスを使用して色々動かしていたら、あるスクリプトの実行時に