Управление версионированием бакета
Версионирование бакета — это возможность хранить историю объекта с помощью версий.
Важно
Операция включения необратима: отключить версионирование нельзя, можно только приостановить создание новых версий. После приостановки версионирования новые объекты будут сохраняться с версией null.
Примечание
При включенной блокировке версии объекта версионирование нельзя приостановить.
Чтобы включить версионирование бакета:
- В консоли управления
выберите каталог. - Перейдите в сервис Object Storage.
- Нажмите на имя нужного бакета.
- На панели слева выберите
Настройки. - Выберите вкладку Версионирование.
- Чтобы включить или приостановить версионирование, используйте опцию Хранить историю изменений объектов.
- Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для редактирования ACL бакета:
yc storage bucket update --help -
Выполните следующую команду:
yc storage bucket update --name <имя_бакета> --versioning versioning-enabledРезультат:
name: my-bucket folder_id: csgeoelk7fl15******** default_storage_class: STANDARD versioning: VERSIONING_ENABLED max_size: "10737418240" acl: {} created_at: "2022-12-14T08:42:16.273717Z"
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
Выполните следующую команду:
aws --endpoint https://storage.yandexcloud.net \
s3api put-bucket-versioning \
--bucket <имя_бакета> \
--versioning-configuration 'Status=Enabled'
Примечание
Если вы работаете с Object Storage через Terraform от имени сервисного аккаунта, назначьте сервисному аккаунту нужную роль, например storage.admin, на каталог, в котором будут создаваться ресурсы.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Получите статические ключи доступа — секретный ключ и идентификатор ключа, используемые для аутентификации в Object Storage.
Примечание
Кроме статических ключей доступа для аутентификации в Object Storage можно использовать IAM-токен. Подробнее смотрите в разделе Создание бакета и в документации провайдера.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_iam_service_account" "sa" { name = "<имя_сервисного_аккаунта>" } // Назначение роли сервисному аккаунту resource "yandex_resourcemanager_folder_iam_member" "sa-admin" { folder_id = "<идентификатор_каталога>" role = "storage.admin" member = "serviceAccount:${yandex_iam_service_account.sa.id}" } // Создание статического ключа доступа resource "yandex_iam_service_account_static_access_key" "sa-static-key" { service_account_id = yandex_iam_service_account.sa.id description = "static access key for object storage" } resource "yandex_storage_bucket" "b" { bucket = "<имя_бакета>" access_key = yandex_iam_service_account_static_access_key.sa-static-key.access_key secret_key = yandex_iam_service_account_static_access_key.sa-static-key.secret_key acl = "private" versioning { enabled = true } }Где:
bucket— имя бакета. Обязательный параметр.access_key— идентификатор статического ключа доступа.secret_key— значение секретного ключа доступа.acl— применяемая политика ACL. Значение по умолчаниюprivate. Необязательный параметр.versioning— управление версионированием бакета:enabled— включает версионирование бакета. Необязательный параметр.
Более подробную информацию о параметрах ресурса
yandex_storage_bucketв Terraform см. в документации провайдера. -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения можно в консоли управления
. -
Чтобы управлять версионированием бакета, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API putBucketVersioning.