- tocdepth
2
Автоматическое удаление фрагментов OBS
Фрагменты OBS — это неполные данные, которые генерируются в результате сбоя во время загрузки объектов в бакет. Основные причины их возникновения:
Прерывания связи с сервером OBS из-за плохого соединения с сетью.
Ручная приостановка загрузки.
Неисправность или внезапное отключение устройства, с которого идет загрузка.
Если при загрузке произошел сбой, ее следует повторить, а сгенерированные фрагменты удалить, так как они занимают место в хранилище и тарифицируются так же, как и полноценные объекты.
С помощью этой инструкции можно создать функцию, которая будет автоматически удалять фрагменты из хранилища.
Создание политики и представительства в IAM
В списке сервисов выберите Identity and Access Management.
В боковом меню выберите Permissions.
Нажмите Create Custom Policy.
Заполните параметры политики:
Policy Name — укажите название политики.
Policy view — выберите JSON.
Policy Content — введите следующий код:
{ "Version": "1.1", "Statement": [ { "Action": ["obs:*"], "Effect": "Allow" } ] }
Сохраните политику — нажмите OK.
В боковом меню выберите Agencies.
Нажмите Create Agency.
Заполните параметры представительства:
Agency Name — укажите название представительства.
Agency Type — выберите Cloud service.
Cloud Service — нажмите Select и выберите FunctionGraph.
Validity Period — выберите из списка Unlimited.
Permissions — нажмите Assign Permissions. В выпадающем списке All policies/roles нажмите Custom policies и выберите созданную ранее политику.
Сохраните представительство — нажмите OK.
Создание функции
Для создания функции скачайте Java-файл с кодом и настройки для функции в YAML-формате.
В списке сервисов выберите FunctionGraph.
В боковом меню выберите Functions.
Нажмите Import Function.
Заполните параметры импорта:
App — выберите default.
Нажмите Select File и выберите скачанные файлы (
clean_obs_fragments.jar
,clean_obs_fragments.yaml
).В блоке Functions в поле Name укажите имя функции или оставьте значение по умолчанию.
Сохраните параметры — нажмите OK.
Перейдите на вкладку Configuration.
Agency — выберите из списка созданное ранее представительство.
Environment Variables — в строке с Key, равным age_hours, отредактируйте значение Value — возраст фрагмента в часах. Например, 24.
Примечание
По умолчанию возраст фрагмента установлен на 0. Это означает, что все фрагменты будут немедленно удалены после срабатывания триггера функции.
В правом верхнем углу нажмите Save.
Перейдите на вкладку Triggers.
Нажмите Create Trigger и заполните параметры триггера:
Trigger Type — выберите из списка тип Timer.
Timer Name — укажите название триггера.
Rule — выберите и настройте правило удаления фрагментов:
Fixed rate — заданная периодичность запуска триггера.
Cron Expression — периодичность задается с помощью cron-выражения.
Сохраните триггер — нажмите ОК.
Функция удаления фрагментов OBS готова.
для Dev & Test