← Cloudflare R2 / r2 / buckets
Блокировки бакета
Блокировки бакета предотвращают удаление и перезапись объектов в бакете R2 в течение заданного периода или бессрочно. Когда блокировки бакета включены, они применяют политики хранения к вашим объектам, защищая их от случайного или преждевременного удаления.
Начало работы с блокировками бакета
Прежде чем начать, вам потребуется:
- Существующий бакет R2. Если у вас еще нет бакета R2, см. Создание бакетов.
- (Только через API) API-токен с разрешения чтобы изменить конфигурацию бакета R2.
Включение блокировки бакета через панель управления
-
На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.
Перейдите в Обзор ↗ -
Выберите бакет, к которому нужно добавить правило блокировки.
-
Перейдите на вкладку Настройки вкладке, затем прокрутите вниз до Bucket lock rules карточка.
-
Выберите Добавление правила и укажите имя правила, префикс и срок хранения.
-
Выберите Save changes.
Включение блокировки бакета через Wrangler
- Установка
npm↗. - Установка Wrangler, CLI платформы разработчика.
- Войдите в Wrangler с помощью
wrangler loginкоманда. - Правило блокировки бакета добавьте в бакет, выполнив
r2 bucket lock addкоманда.
npx wrangler r2 bucket lock add <BUCKET_NAME> [OPTIONS]Также вы можете задать всю конфигурацию блокировки бакета из файла JSON с помощью r2 bucket lock set команда.
npx wrangler r2 bucket lock set <BUCKET_NAME> --file <FILE_PATH>JSON-файл должен соответствовать формату тела запроса put bucket lock configuration API.
Включение блокировки бакета через API
Сведения о начале работы с Cloudflare API см. в Выполняйте вызовы API. Информацию об обязательных параметрах и дополнительные примеры настройки конфигурации Bucket Lock см. Документация по API.
Ниже приведён пример настройки конфигурации блокировки бакета (набора правил):
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>/lock" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"id": "lock-logs-7d",
"enabled": true,
"prefix": "logs/",
"condition": {
"type": "Age",
"maxAgeSeconds": 604800
}
},
{
"id": "lock-images-indefinite",
"enabled": true,
"prefix": "images/",
"condition": {
"type": "Indefinite"
}
}
]
}'Этот запрос создает два правила:
lock-logs-7d: объекты вlogs/с префиксом хранятся 7 дней (604800 секунд).lock-images-indefinite: объекты вimages/с префиксом заблокированы на неопределенный срок.
Получение правил блокировки бакета для вашего бакета R2
Dashboard
-
На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.
Перейдите в Обзор ↗ -
Выберите бакет, к которому нужно добавить правило блокировки.
-
Перейдите на вкладку Настройки вкладке, затем прокрутите вниз до Bucket lock rules карточка.
Wrangler
Чтобы получить список правил блокировки бакета, выполните r2 bucket lock list команда:
npx wrangler r2 bucket lock list <BUCKET_NAME>API
Сведения о необходимых параметрах и примеры получения правил блокировки бакета см. в Документация по API.
Удаление правил блокировки бакета из вашего бакета R2
Dashboard
-
На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.
Перейдите в Обзор ↗ -
Выберите бакет, к которому нужно добавить правило блокировки.
-
Перейдите на вкладку Настройки вкладке, затем прокрутите вниз до Bucket lock rules карточка.
-
Найдите правило, которое хотите удалить, выберите
...значок рядом с ним, а затем выберите Удалить.
Wrangler
Чтобы удалить правило блокировки бакета, выполните r2 bucket lock remove команда:
npx wrangler r2 bucket lock remove <BUCKET_NAME> --id <RULE_ID>API
Чтобы удалить правила блокировки бакета через API, исключите их из обновленной конфигурации и используйте put bucket lock configuration API.
Bucket lock rules
Конфигурация блокировки бакета может включать до 1,000 правил. Каждое правило определяет, на какие объекты оно распространяется (по префиксу) и как долго эти объекты должны оставаться заблокированными. Вы можете:
- Блокируйте объекты на определённый срок. Например, на 90 дней.
- Храните объекты до определённой даты. Например, до 1 января 2026 года.
- Блокируйте объекты бессрочно.
Если к одному и тому же префиксу или ключу объекта применяется несколько правил, приоритет имеет самое строгое, то есть самое длительное, требование хранения.
Примечания
- Правила без префикса применяются ко всем объектам в бакете.
- Правила применяются как к новым, так и к существующим объектам в бакете.
- Bucket lock rules имеют приоритет над правила жизненного цикла. Например, если правило жизненного цикла пытается удалить объект через 30 дней, но правило Bucket Lock требует хранить его 90 дней, объект не будет удалён, пока не будет выполнено требование в 90 дней.
- Бакет нельзя очистить, пока для него настроены правила блокировки. Удалите все правила блокировки, прежде чем очистка бакета. Правила Bucket Lock также применяются, когда удаление папок из панели управления.