Файлы и медиа
Загружайте файлы и управляйте ими из кода приложения. Каждый файл получает постоянный публичный URL.
Proyecta предоставляет Files API через SDK для программного управления файлами из кода вашего приложения.
Вложения в чате
Заголовок раздела «Вложения в чате»В поле ввода чата можно вставлять изображения напрямую — вставьте скриншот или перетащите файл изображения на поле ввода. Поддерживаемые форматы: PNG, JPEG, WebP, GIF, AVIF. Максимальный размер: 10 МБ на изображение.
Вложения в чате являются частью сообщения, а не вашей библиотеки файлов. Для постоянного хранения используй SDK.
Files API (SDK)
Заголовок раздела «Files API (SDK)»Каждое опубликованное приложение Proyecta имеет доступ к API файлового хранилища через Proyecta SDK. SDK поддерживает получение списка, загрузку по запросу и выгрузку файлов. Загруженные файлы получают постоянный публичный URL, на который можно ссылаться из приложения.
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
// List files (supports limit and starting_after for pagination)const files = await proyecta.files.list();
// Fetch a single file by IDconst file = await proyecta.files.get('1234567890123456789');console.log(file.url); // permanent public URL
// Upload a file (two-step)// Step 1: create a placeholder and get a signed upload URLconst { id: fileId, upload_url } = await proyecta.files.create({ filename: 'avatar.png', mime_type: 'image/png',});
// Step 2: PUT the file bytes directly to the signed URLawait fetch(upload_url, { method: 'PUT', body: fileBytes, headers: { 'Content-Type': 'image/png' },});
// Step 3: finalize to get the permanent file recordconst uploaded = await proyecta.files.finalize({ fileId });console.log(uploaded.url); // permanent public URL, now populatedКаждый файл содержит следующие поля:
| Поле | Описание |
|---|---|
id | Уникальный идентификатор (числовая строка-снежинка) |
url | Постоянный публичный URL (заполняется после шага finalize) |
filename | Оригинальное имя файла при загрузке |
mime_type | image/jpeg, application/pdf и т. д. |
size | Размер в байтах |
path | Опциональный путь к папке (например, /images/blog) |
content_hash | SHA-256 содержимого файла |
metadata | Произвольные метаданные в формате ключ/значение |
created | Временная метка создания в формате ISO 8601 |
updated | Временная метка последнего обновления в формате ISO 8601 |
Как загружать файлы в моё приложение?
Заголовок раздела «Как загружать файлы в моё приложение?»Загрузка файлов настраивается через AI builder. Попроси ИИ реализовать нужный сценарий:
"Let users upload a profile photo and store it in Proyecta Files""Add an image gallery where signed-in users can upload and view their photos""Let me attach PDF invoices to orders"
ИИ встраивает логику загрузки в код твоего приложения с помощью двухшагового upload API из SDK и использует возвращённый публичный URL. Ты также можешь вызывать files.create() / files.finalize() напрямую из своего кода.
Частые вопросы
Заголовок раздела «Частые вопросы»Публичны ли URL файлов?
Да. Любой файл, возвращённый Files API, имеет постоянный публичный URL. Не загружай то, что не хочешь сделать общедоступным.
Каков максимальный размер файла?
Ограничения на размер файла зависят от твоего тарифного плана. Вложения в чате ограничены 10 МБ на изображение.
Можно ли изменять размер или обрезать изображения через URL?
Трансформации изображений на лету (изменение размера, обрезка, конвертация формата) запланированы в roadmap.
- Трансформации изображений через параметры URL (изменение размера, обрезка, конвертация формата)
- Организация по папкам — создание папок и управление путями в панели
- «Добавить в чат» прямо из строки файла, чтобы вставлять файлы из библиотеки в разговор с ИИ