Skip to content
Kumquat
Esc
↑↓navigate↵open⌘Jpreview
On this page

Завантаження файлів у task description

Фото і файли вантажаться в S3 через окремий ендпоінт; відео живе на Google Drive.

Фото і файли завантажуються в S3 через окремий ендпоінт і вставляються в текст постійним публічним посиланням. Відео не завантажується — воно живе на Google Drive, і Drive-посилання вставляється як звичайне посилання.

Налаштування доступу, ліміти ingress і життєвий цикл файлів — у інфраструктурній частині.

Фото

/image у слеш-меню → файловий пікер → S3. У документі лишається https://assets.kumquat.myplantin.com/uploads/<sha256>/<ім'я> — постійне, працює в інкогніто, переживає перезавантаження.

  • Типи: PNG, JPEG, WebP, GIF. Ліміт 10 МБ.
  • Тип визначається по вмісту файлу, не по розширенню й не по заголовку від клієнта.
  • Pillow перевіряє, що файл справді декодується, і дає розміри — редактор резервує під них місце, тому лейаут не стрибає.
  • Ключ містить sha256, тому повторне завантаження того самого файлу не створює дубль.

Файли

/file → будь-який тип, ліміт 25 МБ. PDF відкривається інлайново, все інше скачується.

Тип не обмежується списком: замість заборон обʼєкти віддаються з Content-Disposition: attachment. Бакет публічний, і це принципово — файл, який завантажується замість того, щоб рендеритись, не може виконатись на нашому домені. Тому html чи svg приймаються і при цьому нешкідливі.

Відео

Не завантажується на наш S3 — воно живе на Google Drive (для відео вже є gdrive-sync пайплайн, а 45-мегабайтні файли не пройшли б через ingress).

Блок Video в редакторі є, але для Drive він не працює: BlockNote рендерить його як <video src="...">, тобто чекає пряме посилання на медіафайл. Посилання на файл у Drive — це сторінка перегляду, а не медіафайл, тому такий блок лишиться порожнім.

Тому Drive-посилання вставляється як звичайне посилання в текст.

Was this page helpful?