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