01.1.11 Cloudflare¶
| Версия | 1.0.0 |
|---|---|
| Количество листов |
Оглавление¶
История изменений¶
| №1 | Дата: 02.02.26 | Автор:Ляшук Андрей | RFC: RPL-2299 | Версия: 1.0.0 |
|---|---|---|---|---|
| Изменено: • В “01.1.11_1.2_1 Процедура загрузки файла в Cloudflare”: Добавлена обработка видео • Изменено название при логировании. В “1_1 Переменные окружения” добавлена переменная окружения “CLOUDFLARE_STREAM_CUSTOMER_CODE”. |
1. Cloudflare¶
Сервис Cloudflare используется для загрузки и хранения файлов.
Интеграция с сервисом Cloudflare осуществляется на основе документации сервиса.
1_1 Переменные окружения
| Переменная окружения | Описание |
|---|---|
| CLOUDFLARE_BASE_URL | Хост для выполнения запросов к сервису. |
| CLOUDFLARE_IMAGE_URL | Хост на котором хранятся файлы. |
| CLOUDFLARE_API_TOKEN | АПИ токен для аутентификации запросов. |
| CLOUDFLARE_ACCOUNT_ID | Идентификатор аккаунта. |
| CLOUDFLARE_ACCOUNT_IMAGE_HASH | Хэш для запроса изображений. |
| CLOUDFLARE_STREAM_URL | Код клиента для видео. |
1.1 Очередь загрузки файлов в Cloudflare¶
Очередь предназначена для загрузки файлов в Cloudflare.
Очередь состоит из:
- Брокера сообщений который предназначен для хранения информации файле который должен быть загружен в Cloudflare.
- Обработчика сообщений.
Повторная отправка сообщения очереди
Если сообщение не было обработано Обработчиком сообщений, должна выполняться повторная отправка сообщения Обработчику сообщений согласно настройкам повторной отправки сообщений.
Настройки повторной отправки сообщений
| Настройка | Значение | Описание |
|---|---|---|
| Первоначальная отсрочка | 60000 | Первоначальная отсрочка отправки сообщения в миллисекундах. |
| Количество попыток | 11 | Количество повторных попыток отправки сообщения |
| Множитель отсрочки | 2 |
1.1_1 Параметры сообщения “File”
| Название | Ключ | Значение |
|---|---|---|
| Идентификатор файла | file_id |
01.1.11_1.1_1 Процедура обработки сообщения “File”¶
- Наступает время обработки сообщения, брокер отправляет сообщение обработчику сообщений.
- Обработчик получает сообщение “File”.
- Выполняется логирование события с Payload:
- event - "received";
- title - “File”;
- data.file_id - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
- Если не имеется “Файла” идентификатор которого соответствует “file_id”, который был указан в сообщении для которого была инициирована данная процедура:
- Логирование события с Payload:
- event - "processed";
- title - “File”;
- info - “File not found”;
- data.file_id - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
- Брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- Если для “Файла”, который был получен в сообщении для которого была инициирована данная процедура:
- Не имеется “Идентификатора файла в Cloudflare”:
- Выполняется “01.1.11_1.2 Процедура загрузки файла в Cloudflare” с параметрами:
- Идентификатор файла - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
- Если “01.1.11_1.2 Процедура загрузки файла в Cloudflare” выполнена:
- Не успешно и код ошибки в Cloudflare:
- 9402, 9412, 9413, 9520, 9522, 9529:
- Брокеру сообщений возвращается информация о том что сообщение было обработано;
- В “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
- text - “Response from Cloudflare has not been processed. File with ID {Идентификатор файла, который был указан в сообщении для которого была инициирована данная процедура} could not be uploaded”;
- Не 9402, 9412, 9413, 9520, 9522, 9529:
- Брокеру сообщений не возвращается информация о том что сообщение было обработано;
- Если сообщение “File” удаляется из очереди, в очередь “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
- text - “Response from Cloudflare has not been processed. File with ID {Идентификатор файла, который был указан в сообщении для которого была инициирована данная процедура} was not uploaded”;
- Успешно, брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
- Не успешно и код ошибки в Cloudflare:
- Выполняется “01.1.11_1.2 Процедура загрузки файла в Cloudflare” с параметрами:
- Имеется “Идентификатора файла в Cloudflare”, брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
1.2 Запрос “Upload An Image” к сервису Cloudflare¶
01.1.11_1.2_1 Процедура загрузки файла в Cloudflare¶
- Выполняется инициация данной процедуры с параметрами:
- Идентификатор файла.
- Если “Тип” файла который был указан при инициации данной процедурой:
- Изображение, выполняется запрос “Upload An Image” к сервису Cloudflare:
- С параметрами:
- account_id - согласно значению переменной окружения “CLOUDFLARE_ACCOUNT_ID”;
- С заголовками:
- Authorization - согласно значению переменной окружения “CLOUDFLARE_API_TOKEN”;
- С телом запроса:
- file - Файл, для которого инициирована данная процедура.
- С параметрами:
- Видео, выполняется запрос “Initiate Video Uploads Using Tus” к сервису Cloudflare:
- С параметрами:
- account_id - согласно значению переменной окружения “CLOUDFLARE_ACCOUNT_ID”;
- С заголовками:
- Authorization - согласно значению переменной окружения “CLOUDFLARE_API_TOKEN”;
- С телом запроса:
- file - Файл, для которого инициирована данная процедура.
- С параметрами:
- Если запрос “Upload An Image” или “Initiate Video Uploads Using Tus” к сервису Cloudflare:
- Не выполнен:
- Выполняется логирование события с Payload:
- title - “Upload in CloudFlare”;
- error - “Cloudflare service did not respond”;
- data.file_id - Идентификатор файла, для которого была инициирована данная процедура.
- Инициатору данной процедуры возвращается информация о неуспешном выполнении данной процедуры. Дальнейшие этапы процедуры не выполняются.
- Выполняется логирование события с Payload:
- Выполнен неуспешно (код ответа не “200”) и код ошибки:
- Выполняется логирование события с Payload:
- title - “Upload in CloudFlare”;
- error - “Cloudflare service responded incorrectly”;
- data.file_id - Идентификатор файла, для которого была инициирована данная процедура.
- Инициатору данной процедуры возвращается информация о неуспешном выполнении данной процедуры. Дальнейшие этапы процедуры не выполняются.
- Выполняется логирование события с Payload:
- Выполнен успешно (код ответа “200”):
- Выполняется удаление “файла” из внутреннего хранилища, для которого инициирована данная процедура;
- Выполняется изменение параметров “файла”, для которого инициирована данная процедуры:
- Ссылка - null;
- Идентификатор файла в Cloudflare - Если был выполнен запрос:
- “Upload An Image” согласно значению параметра “result.id” который был получен в результате выполнения запроса “Upload An Image”;
- “Initiate Video Uploads Using Tus” согласно значению параметра “result.uid” который был получен в результате выполнения запроса “Initiate Video Uploads Using Tus”;
- Инициатору данной процедуры возвращается информация об успешном выполнении данной процедуры.
- Дальнейшие этапы процедуры не выполняются.