Перейти к содержимому
getxflow.com

Платформа

Файлы

Хранилище файлов проекта для фото, видео и PDF: загрузка, адреса, удаление и лимиты.

У каждого проекта есть хранилище для фото, видео, PDF и больших картинок. Файлы переживают любую сборку, их адреса не меняются. Код приложения ограничен 10 МБ архива и 15 МБ распакованной сборки, поэтому тяжёлое в код не кладут:

Где лежит Что
в коде приложения иконки, шрифты, небольшие картинки
в хранилище проекта фото, видео, PDF, большие иллюстрации
в самой странице всё, что она показывает: хранилище страницам не служит

Файлы приложения кладёт агент командой xflow storage push. Файлы от пользователей приложения идут через функцию: её код решает, можно ли посетителю загружать.

Окно терминала
xflow storage push ./media --to media

Заливает папку или файл, сохраняя структуру папок.

Флаг Что делает
--to <папка> в какую папку хранилища положить
--replace заменить файл с другим размером, адрес сохраняется
--json вывод одним JSON

Заливается только недостающее: файл с тем же путём и размером пропускается, поэтому после обрыва команду повторяют. Файл с другим размером без --replace остаётся как был. Скрытые файлы (имя с точки) не уезжают.

xflow storage ls [папка] печатает путь, размер и адрес каждого файла, --json отдаёт список целиком. Команды скачать файлы в папку нет.

push и ls печатают относительный адрес /_files/<id>, его отдаёт адрес самого приложения:

<img src="/_files/8c1f…" alt="Товар">
  • Файл открывает тот, кто может открыть приложение. У приложения «Любой по ссылке» это любой посетитель без входа.
  • Адрес постоянный, --replace его не меняет: ссылки в коде и в таблицах базы остаются рабочими.
  • В интерфейсе платформы файлы открывает тот, у кого есть доступ к проекту.

Файлы от пользователей приложения: функция просит у платформы одноразовую ссылку, браузер отправляет файл по ней в хранилище, функция подтверждает загрузку и получает адрес. Списка загруженного платформа не отдаёт: адрес нужно сразу записать в свою таблицу. Подробности агент знает из инструкции о платформе.

Окно терминала
xflow storage rm /_files/8c1f…
xflow storage rm --folder media --yes

Удаление необратимо. Без --yes удаление папки называет число файлов и ничего не делает.

Агенту нужно право «Удалять файлы»: по умолчанию выключено (в тех же папках файлы пользователей), включает человек в разделе «AI агент», без него команда отвечает отказом. В интерфейсе удаляет уровень «Редактирование».

До 200 МБ на файл. Общий объём у организации задаёт тариф, его можно докупить. Занятое и лимит показывает xflow whoami.

Вид Расширения
изображения png, jpg, jpeg, gif, webp, avif, svg, ico, bmp, tif, tiff, heic, heif
документы pdf, txt, md, rtf, csv, doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp
данные json, xml, yaml, yml, geojson, vtt, srt, dat
аудио mp3, wav, ogg, oga, m4a, aac, flac, opus, weba
видео mp4, webm, mov, m4v, mpg, mpeg, avi, mkv
шрифты woff, woff2, ttf, otf
архивы zip, gz, tgz, tar, 7z, rar

Страницы, скрипты и программы (html, js, exe и подобные) не принимаются: код приложения уезжает через деплой.

Код отказа Что значит
invalid_name пустое или слишком длинное имя, / в имени файла
file_too_large файл больше 200 МБ
quota_exceeded место организации кончилось
forbidden_type такой тип файла не принимается
duplicate_name файл с таким именем уже есть в папке
not_found файла или папки нет

В интерфейсе файлы в блоке «Хранилище» на главной проекта: папки, занятое место, загрузка, предпросмотр, скачивание и удаление.