こんにちは。hacknoteのj.kushiyamaです。今回行ったことの一部としてAWSCLIでのs3オブジェクトのバージョン表示方法について紹介したいと思います。
s3オブジェクトのバージョニングの設定をオンにしている場合、同じオブジェクト(ファイル)でも複数のバージョンを存在させることができます。
s3オブジェクトのバージョンを表示する
例えば以下のコマンドで、複数存在するs3オブジェクトのバージョン一覧を表示することができます。
aws s3api list-object-versions --bucket testbk
testbkの部分にはバケット名を指定します。この場合はバケット内のすべてのオブジェクトのバージョンを表示します。
特定のオブジェクトを選択する場合は以下のようにします。
aws s3api list-object-versions --bucket testbk --prefix testfolder/test.txt
この場合はバケットtestbk内のオブジェクトtestfolder/test.txtのパスを指定してそのバージョンを取得します。
実行結果は以下のような形式になります。
{ "Versions": [ { "LastModified": "XXXX-XX-XXTXX:XX:XX.XXXX", "VersionId": "...", "ETag": "\"...\"", "StorageClass": "...", "Key": "a.txt", "Owner": { "DisplayName": "....", "ID": "..." }, "IsLatest": ..., "Size": ... },
この…の部分にバージョンに関する情報が記載されています。特に重要なのがVersionIdで、このIDによってバージョン管理を行います。
VersionIdを用いて以前のバージョンのファイルを復元することができます。