s3オブジェクトのバージョン表示

こんにちは。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を用いて以前のバージョンのファイルを復元することができます。