Ограничение максимального размера бакета
Object Storage позволяет ограничить максимальный размер бакета.
Если вы, например, предоставляете пользователям вашего сервиса возможность самостоятельно загружать объекты в Object Storage, то ограничение максимального объема позволит лучше контролировать действия пользователей и избежать лишних трат.
-
В консоли управления
в списке сервисов выберите Object Storage и перейдите в бакет, максимальный размер которого вы хотите ограничить. -
На панели слева выберите
Настройки. -
Выберите вкладку Основные.
-
Задайте значение поля Макс. размер.
Размер
0
означает отсутствие ограничений и аналогичен включенной опции Без ограничения. -
Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения бакета:
yc storage bucket update --help
-
Получите список бакетов в каталоге по умолчанию:
yc storage bucket list
Результат:
+------------------+----------------------+----------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+----------+-----------------------+---------------------+ | first-bucket | b1gmit33ngp6******** | 0 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+----------+-----------------------+---------------------+
-
Сохраните имя бакета (столбец
NAME
), размер которого нужно ограничить. -
Ограничьте максимальный размера бакета:
yc storage bucket update \ --name <имя_бакета> \ --max-size <максимальный_размер_бакета>
Где:
--name
— имя бакета, размер которого нужно ограничить.--max-size
— максимальный размер бакета в байтах.0
— без ограничений.
Результат:
name: first-bucket older_id: b1gmit33ngp6******** default_storage_class: STANDARD versioning: VERSIONING_DISABLED max_size: "26843545600" acl: {} created_at: "2022-12-16T13:58:18.933814Z"
Примечание
Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin
, на каталог, в котором будут создаваться ресурсы.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы ограничить максимальный размер бакета:
-
Откройте файл конфигурации Terraform и добавьте параметр
max_size
в описании бакета:... resource "yandex_storage_bucket" "test" { access_key = "<идентификатор_статического_ключа>" secret_key = "<секретный_ключ>" bucket = "tf-test-bucket" max_size = 1048576 } ...
Где:
access_key
— идентификатор статического ключа доступа.secret_key
— значение секретного ключа доступа.max_size
— максимальный размер бакета в байтах.
Более подробную информацию о параметрах ресурса
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.