Управление жизненным циклом объекта
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI
Проверить конфигурацию
В терминале выполните команду:
aws s3api get-bucket-lifecycle-configuration --bucket <bucket_name>
Укажите:
<bucket_name> — имя бакета.
Добавить конфигурацию
В терминале выполните команду:
aws s3api put-bucket-lifecycle-configuration \
--bucket <bucket_name> \
--lifecycle-configuration file://<path>
Укажите:
<bucket_name> — имя бакета;
<path> — путь к файлу с правилами конфигурации.
Изменить конфигурацию
Для изменения правил жизненного цикла откройте JSON-файл с текущей конфигурацией бакета. Вы можете удалить ненужные правила или отредактировать существующие, чтобы они соответствовали вашим задачам. После внесения изменений сохраните файл и примените его в интерфейсе управления хранилищем.
В терминале выполните команду:
aws s3api put-bucket-lifecycle-configuration \
--bucket <bucket_name> \
--lifecycle-configuration file://<path>
Укажите:
<bucket_name> — имя бакета;
<path> — путь к файлу с правилами конфигурации.
Удалить конфигурацию
В терминале выполните команду:
aws s3api delete-bucket-lifecycle --bucket <bucket_name>
Укажите:
<bucket_name> — имя бакета.
Примеры конфигураций см. в статье Примеры конфигураций правил жизненного цикла. Подробнее о жизненном цикле см. в статье Жизненный цикл. Подробнее об объектах см. в статье Об объектах.
Python API
Boto3 — это библиотека Python, предоставляющая программный интерфейс (SDK) для взаимодействия с объектным хранилищем S3. Подробности см. в документации AWS Boto3.
Проверить конфигурацию
import boto3
from botocore.exceptions import ClientError
import json
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def get_lifecycle_configuration(bucket_name):
try:
response = s3.get_bucket_lifecycle_configuration(Bucket=bucket_name)
print(json.dumps(response, indent=2, ensure_ascii=False))
except ClientError as e:
print(f"Ошибка: {e}")
get_lifecycle_configuration('<bucket_name>')
Укажите:
<bucket_name> — имя бакета.
Добавить конфигурацию
В терминале выполните команду:
import boto3
from botocore.exceptions import ClientError
import json
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def put_lifecycle_configuration(bucket_name, config_path):
try:
with open(config_path, 'r', encoding='utf-8') as f:
config_data = json.load(f)
s3.put_bucket_lifecycle_configuration(
Bucket=bucket_name,
LifecycleConfiguration=config_data
)
print(f"Жизненный цикл обновлён для бакета '{bucket_name}'.")
except (ClientError, FileNotFoundError, json.JSONDecodeError) as e:
print(f"Ошибка: {e}")
put_lifecycle_configuration('<bucket_name>', '<path>')
Укажите:
<bucket_name> — имя бакета;
<path> —путь к файлу с правилами конфигурации.
Изменить конфигурацию
Для изменения правил жизненного цикла откройте JSON-файл с текущей конфигурацией бакета. Вы можете удалить ненужные правила или отредактировать существующие, чтобы они соответствовали вашим задачам. После внесения изменений сохраните файл и примените его в интерфейсе управления хранилищем.
В терминале выполните команду:
import boto3
from botocore.exceptions import ClientError
import json
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def put_lifecycle_configuration(bucket_name, config_path):
try:
with open(config_path, 'r', encoding='utf-8') as f:
config_data = json.load(f)
s3.put_bucket_lifecycle_configuration(
Bucket=bucket_name,
LifecycleConfiguration=config_data
)
print(f"Жизненный цикл обновлён для бакета '{bucket_name}'.")
except (ClientError, FileNotFoundError, json.JSONDecodeError) as e:
print(f"Ошибка: {e}")
put_lifecycle_configuration('<bucket_name>', '<path>')
Укажите:
<bucket_name> — имя бакета;
<path> —путь к файлу с правилами конфигурации.
Удалить конфигурацию
В терминале выполните команду:
import boto3
from botocore.exceptions import ClientError
import json
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def delete_lifecycle_configuration(bucket_name):
try:
s3.delete_bucket_lifecycle(Bucket=bucket_name)
print(f"Конфигурация жизненного цикла удалена у бакета '{bucket_name}'.")
except ClientError as e:
print(f"Ошибка: {e}")
delete_lifecycle_configuration('<bucket_name>')
Укажите:
<bucket_name> — имя бакета.
Примеры конфигураций см. в статье Примеры конфигураций правил жизненного цикла. Подробнее о жизненном цикле см. в статье Жизненный цикл. Подробнее об объектах см. в статье Об объектах.