Удалить версию объекта
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI. Удалить версию объекта
В терминале выполните команду:
aws s3api delete-object \
--bucket <bucket_name> \
--key <object_name>
--version-id <versionid>
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<versionid> — уникальный идентификатор версии.
Предположим, в бакете существуют три версии объекта config:
- qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa (текущая версия);
- iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L;
- gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Если удалить версию iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L , ее восстановление станет невозможным. В бакете останутся две версии: qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa (текущая) и gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Если удалить версию qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa , ее восстановление станет невозможным. В бакете версия iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L станет текущей и будет еще версия gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.
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 delete_object_version(bucket_name, object_key, version_id):
try:
s3.delete_object(Bucket=bucket_name, Key=object_key, VersionId=version_id)
print(f"Версия объекта '{object_key}' с version-id '{version_id}' удалена из бакета '{bucket_name}'.")
except ClientError as e:
print(f"Ошибка при удалении версии объекта: {e}")
delete_object_version(
bucket_name='<bucket_name>',
object_key='<object_name>',
version_id='<versionid>'
)
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<versionid> — уникальный идентификатор версии.
Предположим, в бакете существуют три версии объекта config:
- qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa (текущая версия);
- iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L;
- gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Если удалить версию iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L , ее восстановление станет невозможным. В бакете останутся две версии: qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa (текущая) и gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Если удалить версию qiUSH3ek12KIy8Gaf-AFbitQo1fUVOa , ее восстановление станет невозможным. В бакете версия iLqT9nOOPDrWzV70Z9WPJWCTorIKN9L станет текущей и будет еще версия gwo-05miGsQQgQtIjmRXu8VeIEjB2s.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.