LoginSignup
1
0

【AWS】S3ファイルのストレージクラスを表形式で出力してみた

Last updated at Posted at 2023-09-18

1.前書き

S3の特定バケット内にあるファイルのストレージクラスをCLIから確認したくなり、やり方を調べてみた。
s3apiコマンドを使用すれば、json形式でS3に保存されているファイル情報を確認することができる。
そして出力されるパラメータのうち、「StorageClass」を確認すればいいことが分かった。

<出力イメージ>.json
{
    "Contents": [
        {
            "Key": "hoge.txt",
            "LastModified": "2023-09-01T02:22:22+00:00",
            "ETag": "\"999999999999\"",
            "Size": 99,
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "hogehoge",
                "ID": "999999999999999999"
            }
        }
    ]
}

ここで正直な心の声が聞こえた。
「ファイル数が増えるとパッと確認しづらい!」
「json形式じゃなくて表形式で確認したいんじゃ...」

そんな心の声にしたがい、スクリプトを書いてみた。

本記事はその備忘録である。

2.処理の概要

  • s3apiの結果をjsonファイルに出力する。
  • 出力したjsonファイルをConvertFrom-Json コマンドレットをベースに整え、表形式で出力する。

3.作成したスクリプト

exp_S3api_01.ps1
# 変数設定
$bucket_name = "<特定のバケット名>"
$path = "C:\Work\Test"
$json_file = $path + "\s3api_list.json" #s3apiコマンドの出力ファイル

# s3apiコマンドで特定バケット内のファイル情報を出力(json形式)
aws s3api list-objects --bucket $bucket_name | Out-File $json_file

# jsonファイルを読み込んで表形式で出力
(Get-Content $json_file | ConvertFrom-Json).Contents | 
Select-Object Key,StorageClass,Size,LastModified

4.できあがるもの

問題なくどのファイルが、どのストレージクラスで保存されているのか、
表形式で出力することができた。
(ファイル数が増えるなら、やはり表形式の方が見やすいでしょう...)

shot-001.JPG

また、オプションとしてcsvファイルでの出力も簡単にできる。

exp_S3api_02.ps1
# 変数設定
$bucket_name = "<特定のバケット名>"
$path = "C:\Work\Test"
$json_file = $path + "\s3api_list.json" #s3apiコマンドの出力ファイル
$exp_file = $path + "\s3file_list.csv" #出力するcsvファイル

# s3apiコマンドで特定バケット内のファイル情報を出力(json形式)
aws s3api list-objects --bucket $bucket_name | Out-File $json_file

# jsonファイルを読み込んでcsvファイルへ変換
(Get-Content $json_file | ConvertFrom-Json).Contents | 
Select-Object Key,StorageClass,Size,LastModified | 
Export-Csv $exp_file -Encoding default

出力結果は以下の通り。

shot-002.JPG

ファイル数が増えたりストレージクラスの種類が増えたりすると、
フィルターをかけて見たくなる瞬間があると思うので、今後もどこかで使うかなーと考えている。

5.参照

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0