Функції файлів

Функції для роботи з файлами через HTTP.

ФункціяОписВхід → Вихід
DownloadОтримати текстовий ресурс через HTTP/HTTPSurl, headers → file, contentType, statusCode

Download

Завантажує віддалений ресурс і повертає його тіло як текст. Блок призначений для текстових даних — JSON, простий текст, webhook-контент, XML.

ВхідОбов'язковоОпис
urlтакПовний URL з http:// або https://
headersніJSON-об'єкт заголовків запиту
ВихідТипОпис
filestringТіло відповіді, декодоване як UTF-8
contentTypestringЗаголовок Content-Type від сервера
statusCodenumberHTTP-код відповіді

Обмеження безпеки

Щоб один потік не зупинив воркер, дія застосовує жорсткі обмеження:

ОбмеженняЗначенняЩо відбувається при перевищенні
Розмір відповіді10 МіББлок завершується помилкою Response too large …
Загальний час30 секундБлок завершується помилкою Download timed out after 30000 ms
Цільовий хостприватні/зарезервовані IP заблокованоБлок завершується помилкою … not allowed

Обмеження розміру застосовується двома способами:

  • Якщо сервер надсилає заголовок Content-Length більший за 10 МіБ, запит відхиляється негайно (тіло не читається).
  • Інакше тіло читається поступово; читання припиняється, як тільки накопичений обсяг перевищить ліміт.

Фільтр хостів відхиляє будь-який URL, чий хост резолвиться у приватну, link-local, loopback, CGNAT/Tailscale адресу або в IP cloud-metadata. Це не дає потокам зондувати внутрішню інфраструктуру (SSRF).

Обмеження

  • Тільки текст. Бінарні файли (зображення, PDF, архіви) повертаються як спотворений UTF-8 — їх не варто використовувати. Безпечне для бінарних даних завантаження в дорожній карті (Upload, наразі заглушено).
  • Без повторних спроб. Тимчасова 5xx-помилка або таймаут повертає ERROR; з'єднайте блок із Branch та Retry After, якщо вашому потоку потрібні повторні спроби.

Приклад

Завантажити JSON webhook-payload:

ВхідЗначення
urlhttps://api.example.com/webhook/abc123
headers{ "Authorization": "Bearer …" }

Виходи:

  • file{"event":"...","data":{...}}
  • contentTypeapplication/json
  • statusCode200

Використайте JSON → Parse на file, щоб витягти поля.