Получить список версий
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI. Получить список версий
В терминале выполните команду:
aws s3api list-object-versions --bucket <bucket_name>
Укажите:
<bucket_name> — имя бакета.
Описание вывода:
-
Список всех версий объектов в бакете (Versions):
- Key: Имя объекта.
- VersionId: Уникальный идентификатор версии.
- IsLatest: Указывает, является ли версия текущей (true для последней версии).
- LastModified: Дата и время последнего изменения.
- ETag: Хэш объекта для проверки целостности.
- Size: Размер объекта в байтах.
- StorageClass: Класс хранения (например, STANDARD).
- Owner: Информация о владельце объекта.
-
Список маркеров удаления (DeleteMarkers):
- Key: Имя объекта.
- VersionId: Уникальный идентификатор версии.
- IsLatest: Указывает, является ли версия текущей (true для последней версии).
- LastModified: Дата и время последнего изменения.
- Owner: Информация о владельце объекта.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.
Boto3 — это библиотека Python, предоставляющая программный интерфейс (SDK) для взаимодействия с объектным хранилищем S3. Подробности см. в документации AWS Boto3.
Python API. Получить список версий
import boto3
from botocore.exceptions import ClientError
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def list_object_versions(bucket_name):
try:
response = s3.list_object_versions(Bucket=bucket_name)
versions = response.get('Versions', [])
delete_markers = response.get('DeleteMarkers', [])
print(f"Найдено версий объектов: {len(versions)}")
for v in versions:
print(
f"[VERSION] {v['Key']} — ID: {v['VersionId']} — Последняя: {v['IsLatest']} — "
f"Дата: {v['LastModified']}"
)
print(f"Найдено маркеров удаления: {len(delete_markers)}")
for d in delete_markers:
print(
f"[DELETION MARKER] {d['Key']} — ID: {d['VersionId']} — Последняя: {d['IsLatest']} — "
f"Дата: {d['LastModified']}"
)
except ClientError as e:
print(f"Ошибка при получении версий: {e}")
list_object_versions('<bucket_name>')
Укажите:
<bucket_name> — имя бакета.
Описание вывода:
-
Список всех версий объектов в бакете (Versions):
- Key: Имя объекта.
- VersionId: Уникальный идентификатор версии.
- IsLatest: Указывает, является ли версия текущей (true для последней версии).
- LastModified: Дата и время последнего изменения.
- ETag: Хэш объекта для проверки целостности.
- Size: Размер объекта в байтах.
- StorageClass: Класс хранения (например, STANDARD).
- Owner: Информация о владельце объекта.
-
Список маркеров удаления (DeleteMarkers):
- Key: Имя объекта.
- VersionId: Уникальный идентификатор версии.
- IsLatest: Указывает, является ли версия текущей (true для последней версии).
- LastModified: Дата и время последнего изменения.
- Owner: Информация о владельце объекта.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.