AWS CLI: S3 — Контроль Версий Объектов

Amazon S3 имеет встроенное решение по контролю версий (включается во вкладке с параметрами корзины (bucket)), которое помогает отслеживать все изменения файлов, размещенные в S3-корзине.

В этой заметке я покажу, как перечислить все версии объекта (файла), хранящегося в корзине S3, и как скачать конкретную версию объекта.

Дельный Совет: Получение списка Корзин & Объектов в Amazon S3 из командной строки с помощью AWS CLI! Читать далее →

Контроль Версий в S3

Вывести список всех версий объекта в S3:

$ aws s3api list-object-versions --bucket <bucket_name> --prefix <object_name>
- пример -
$ aws s3api list-object-versions --bucket myBucket --prefix myDir/myFile.txt

Пример вывода:

{
  "Name": "myBucket",
  "Versions": [
    {
      "LastModified": "2030-09-29T00:21:12.654Z",
      "VersionId": "1602842863922",
      "ETag": "\"7462528fj587c0df5dj3651a23b80be5\"",
      "StorageClass": "STANDARD",
      "Key": "myFile.txt",
      "Owner": {
          "DisplayName": "myUsername",
          "ID": "myID"
      },
      "IsLatest": true,
      "Size": 819627
    },
    ...
    "Prefix": "",
    "KeyMarker": "myDir/myFile.txt"
    ...

Узнать номер последней версии объекта в S3:

$ aws s3api list-object-versions --bucket <bucket_name> --prefix <object_name> --query 'Versions[?IsLatest].[VersionId]'
- пример -
$ aws s3api list-object-versions --bucket myBucket --prefix myDir/myFile.txt --query 'Versions[?IsLatest].[VersionId]'

Скачать конкретную версию объекта с S3:

$ aws s3api get-object --bucket <bucket_name> --key <object_name> <save_as> --version-id <version>
- пример -
$ aws s3api get-object --bucket myBucket --key myDir/myFile.txt myFile.txt --version-id 1602842863922