minio/docs/bucket/versioning/DESIGN.md

3.3 KiB

Bucket Versioning Design Guide Slack Docker Pulls

Example of a version enabled bucket engineering

/mnt/data02/engineering/backup.tar.gz
├─ 0379f361-695c-4509-b0b8-a4842d414579
│  └─ part.1
├─ 804fea2c-c21e-490b-98ff-cdb647047cb6
│  └─ part.1
├─ e063d138-4d6e-4e68-8576-12d1b4509cc3
│  └─ part.1
├─ e675c1f6-476d-4b46-be31-281c887aea7b
│  └─ part.1
└─ xl.meta

/mnt/data03/engineering/backup.tar.gz
├─ 0379f361-695c-4509-b0b8-a4842d414579
│  └─ part.1
├─ 804fea2c-c21e-490b-98ff-cdb647047cb6
│  └─ part.1
├─ e063d138-4d6e-4e68-8576-12d1b4509cc3
│  └─ part.1
├─ e675c1f6-476d-4b46-be31-281c887aea7b
│  └─ part.1
└─ xl.meta

/mnt/data04/engineering/backup.tar.gz
├─ 0379f361-695c-4509-b0b8-a4842d414579
│  └─ part.1
├─ 804fea2c-c21e-490b-98ff-cdb647047cb6
│  └─ part.1
├─ e063d138-4d6e-4e68-8576-12d1b4509cc3
│  └─ part.1
├─ e675c1f6-476d-4b46-be31-281c887aea7b
│  └─ part.1
└─ xl.meta

/mnt/data05/engineering/backup.tar.gz
├─ 0379f361-695c-4509-b0b8-a4842d414579
│  └─ part.1
├─ 804fea2c-c21e-490b-98ff-cdb647047cb6
│  └─ part.1
├─ e063d138-4d6e-4e68-8576-12d1b4509cc3
│  └─ part.1
├─ e675c1f6-476d-4b46-be31-281c887aea7b
│  └─ part.1
└─ xl.meta

xl.meta is a msgpack file with following data structure, this is converted from binary format to JSON for convenience.

{
  "Versions": [
    {
      "Type": 1,
      "V2Obj": {
        "ID": "KWUs8S+8RZq4Vp5TWy6KFg==",
        "DDir": "X3pDAFu8Rjyft7QD6t7W5g==",
        "EcAlgo": 1,
        "EcM": 2,
        "EcN": 2,
        "EcBSize": 10485760,
        "EcIndex": 3,
        "EcDist": [
          3,
          4,
          1,
          2
        ],
        "CSumAlgo": 1,
        "PartNums": [
          1
        ],
        "PartETags": [
          ""
        ],
        "PartSizes": [
          314
        ],
        "PartASizes": [
          282
        ],
        "Size": 314,
        "MTime": 1591820730,
        "MetaSys": {
          "X-Minio-Internal-Server-Side-Encryption-S3-Kms-Key-Id": "bXktbWluaW8ta2V5",
          "X-Minio-Internal-Server-Side-Encryption-S3-Kms-Sealed-Key": "ZXlKaFpXRmtJam9pUVVWVExUSTFOaTFIUTAwdFNFMUJReTFUU0VFdE1qVTJJaXdpYVhZaU9pSkJMMVZzZFVnelZYVjZSR2N6UkhGWUwycEViRmRCUFQwaUxDSnViMjVqWlNJNklpdE9lbkJXVWtseFlWSlNVa2t2UVhNaUxDSmllWFJsY3lJNklrNDBabVZsZG5WU1NWVnRLMFoyUWpBMVlYTk9aMU41YVhoU1RrNUpkMDlhTkdKa2RuaGpLMjFuVDNnMFFYbFJhbE15V0hkU1pEZzNRMk54ZUN0SFFuSWlmUT09",
          "X-Minio-Internal-Server-Side-Encryption-Seal-Algorithm": "REFSRXYyLUhNQUMtU0hBMjU2",
          "X-Minio-Internal-Server-Side-Encryption-Iv": "bW5YRDhRUGczMVhkc2pJT1V1UVlnbWJBcndIQVhpTUN1dnVBS0QwNUVpaz0=",
          "X-Minio-Internal-Server-Side-Encryption-S3-Sealed-Key": "SUFBZkFPeUo5ZHVVSEkxYXFLU0NSRkJTTnM0QkVJNk9JWU1QcFVTSXFhK2dHVThXeE9oSHJCZWwwdnRvTldUNE8zS1BtcWluR0cydmlNNFRWa0N0Mmc9PQ=="
        },
        "MetaUsr": {
          "content-type": "application/octet-stream",
          "etag": "20000f00f58c508b40720270929bd90e9f07b9bd78fb605e5432a67635fc34722e4fc53b1d5fab9ff8400eb9ded4fba2"
        }
      }
    }
  ]
}