Восстановить версию объекта
Используйте команду copy-object, чтобы сделать копию нужной версии объекта, которая станет текущей версией.
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI. Восстановить версию объекта
В терминале выполните команду:
aws s3api copy-object \
--bucket <bucket-name> \
--key <object-key> \
--copy-source <bucket-name>/<object-key>?versionId=<versionid>
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<versionid>— уникальный идентификатор версии, которую вы хотите восстановить.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.
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 restore_object_version(bucket_name, object_key, version_id):
try:
copy_source = {
'Bucket': bucket_name,
'Key': object_key,
'VersionId': version_id
}
s3.copy_object(
Bucket=bucket_name,
Key=object_key,
CopySource=copy_source
)
print(f"Версия '{version_id}' объекта '{object_key}' восстановлена в бакете '{bucket_name}'.")
except ClientError as e:
print(f"Ошибка при восстановлении версии объекта: {e}")
restore_object_version(
bucket_name='<bucket_name>',
object_key='<object_name>',
version_id='<versionid>'
)
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<versionid>— уникальный идентификатор версии, которую вы хотите восстановить.
Подробнее о версионировании см. в статье Версионирование бакета. Подробнее о бакетах см. в статье О бакетах.