Перейти к содержанию

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.

Очередь состоит из:

  1. Брокера сообщений который предназначен для хранения информации файле который должен быть загружен в Cloudflare.
  2. Обработчика сообщений.

Повторная отправка сообщения очереди

Если сообщение не было обработано Обработчиком сообщений, должна выполняться повторная отправка сообщения Обработчику сообщений согласно настройкам повторной отправки сообщений.

Настройки повторной отправки сообщений

Настройка Значение Описание
Первоначальная отсрочка 60000 Первоначальная отсрочка отправки сообщения в миллисекундах.
Количество попыток 11 Количество повторных попыток отправки сообщения
Множитель отсрочки 2

1.1_1 Параметры сообщения “File”

Название Ключ Значение
Идентификатор файла file_id
01.1.11_1.1_1 Процедура обработки сообщения “File”
  1. Наступает время обработки сообщения, брокер отправляет сообщение обработчику сообщений.
  2. Обработчик получает сообщение “File”.
  3. Выполняется логирование события с Payload:
  4. event - "received";
  5. title - “File”;
  6. data.file_id - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
  7. Если не имеется “Файла” идентификатор которого соответствует “file_id”, который был указан в сообщении для которого была инициирована данная процедура:
  8. Логирование события с Payload:
    1. event - "processed";
    2. title - “File”;
    3. info - “File not found”;
    4. data.file_id - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
  9. Брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
  10. Если для “Файла”, который был получен в сообщении для которого была инициирована данная процедура:
  11. Не имеется “Идентификатора файла в Cloudflare”:
    1. Выполняется “01.1.11_1.2 Процедура загрузки файла в Cloudflare” с параметрами:
      1. Идентификатор файла - Идентификатор файла, который был получен в сообщении для которого была инициирована данная процедура.
    2. Если “01.1.11_1.2 Процедура загрузки файла в Cloudflare” выполнена:
      1. Не успешно и код ошибки в Cloudflare:
        1. 9402, 9412, 9413, 9520, 9522, 9529:
        2. Брокеру сообщений возвращается информация о том что сообщение было обработано;
        3. В “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
          1. text - “Response from Cloudflare has not been processed. File with ID {Идентификатор файла, который был указан в сообщении для которого была инициирована данная процедура} could not be uploaded”;
        4. Не 9402, 9412, 9413, 9520, 9522, 9529:
        5. Брокеру сообщений не возвращается информация о том что сообщение было обработано;
        6. Если сообщение “File” удаляется из очереди, в очередь “Очередь отправки сообщений в Телеграм” добавляется сообщение “Telegram message” с параметрами:
          1. text - “Response from Cloudflare has not been processed. File with ID {Идентификатор файла, который был указан в сообщении для которого была инициирована данная процедура} was not uploaded”;
      2. Успешно, брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.
  12. Имеется “Идентификатора файла в Cloudflare”, брокеру сообщений возвращается информация о том что сообщение было обработано. Дальнейшие этапы данной процедуры не выполняются.

1.2 Запрос “Upload An Image” к сервису Cloudflare

01.1.11_1.2_1 Процедура загрузки файла в Cloudflare
  1. Выполняется инициация данной процедуры с параметрами:
  2. Идентификатор файла.
  3. Если “Тип” файла который был указан при инициации данной процедурой:
  4. Изображение, выполняется запрос “Upload An Image” к сервису Cloudflare:
    1. С параметрами:
      1. account_id - согласно значению переменной окружения “CLOUDFLARE_ACCOUNT_ID”;
    2. С заголовками:
      1. Authorization - согласно значению переменной окружения “CLOUDFLARE_API_TOKEN”;
    3. С телом запроса:
      1. file - Файл, для которого инициирована данная процедура.
  5. Видео, выполняется запрос “Initiate Video Uploads Using Tus” к сервису Cloudflare:
    1. С параметрами:
      1. account_id - согласно значению переменной окружения “CLOUDFLARE_ACCOUNT_ID”;
    2. С заголовками:
      1. Authorization - согласно значению переменной окружения “CLOUDFLARE_API_TOKEN”;
    3. С телом запроса:
      1. file - Файл, для которого инициирована данная процедура.
  6. Если запрос “Upload An Image” или “Initiate Video Uploads Using Tus” к сервису Cloudflare:
  7. Не выполнен:
    1. Выполняется логирование события с Payload:
      1. title - “Upload in CloudFlare”;
      2. error - “Cloudflare service did not respond”;
      3. data.file_id - Идентификатор файла, для которого была инициирована данная процедура.
    2. Инициатору данной процедуры возвращается информация о неуспешном выполнении данной процедуры. Дальнейшие этапы процедуры не выполняются.
  8. Выполнен неуспешно (код ответа не “200”) и код ошибки:
    1. Выполняется логирование события с Payload:
      1. title - “Upload in CloudFlare”;
      2. error - “Cloudflare service responded incorrectly”;
      3. data.file_id - Идентификатор файла, для которого была инициирована данная процедура.
    2. Инициатору данной процедуры возвращается информация о неуспешном выполнении данной процедуры. Дальнейшие этапы процедуры не выполняются.
  9. Выполнен успешно (код ответа “200”):
    1. Выполняется удаление “файла” из внутреннего хранилища, для которого инициирована данная процедура;
    2. Выполняется изменение параметров “файла”, для которого инициирована данная процедуры:
      1. Ссылка - null;
      2. Идентификатор файла в Cloudflare - Если был выполнен запрос:
        1. “Upload An Image” согласно значению параметра “result.id” который был получен в результате выполнения запроса “Upload An Image”;
        2. “Initiate Video Uploads Using Tus” согласно значению параметра “result.uid” который был получен в результате выполнения запроса “Initiate Video Uploads Using Tus”;
    3. Инициатору данной процедуры возвращается информация об успешном выполнении данной процедуры.
    4. Дальнейшие этапы процедуры не выполняются.