S3 バケットを tree コマンドっぽく見たい


モチベーション

  • なにかのツールやサービスで S3 バケットがデータ保存場所として使われるケースが多々ある
  • これらの挙動調査として、特定の S3 バケットや特定の Prefix に対して、その配下にどのような S3 オブジェクトが作成されていくのか見ていきたい
  • AWS CLI では aws s3 ls --recursive mybucket のような形で再帰的に S3 オブジェクトを確認できるが、出力があまり読みやすくないため tree コマンドのように見れると嬉しい

どう解決するか

  • stree コマンドを使う
  • 下記のブログ記事に筆者の方による情報が書いてあるが、自分の環境で動かしたのでメモしておく

stree:S3バケットをtreeするCLIコマンド | フューチャー技術ブログ
https://future-architect.github.io/articles/20230926a/

前提条件

  • AWS CLI と IAM 権限のセットアップ
  • 良さげな S3 バケットと S3 オブジェクトを作成しておく

インストール

# go install を使う方法
go install github.com/orangekame3/stree@latest

# homebrew を使う方法
brew install orangekame3/tap/stree

S3 オブジェクトを確認する

stree mybucket/mypath

my env

% sw_vers
ProductName:            macOS
ProductVersion:         15.2
BuildVersion:           24C101
% stree --version
stree version 0.0.21 (Built on 2025-01-06 19:25:12.128398 +0900 JST m=+0.001161376)