Ir al contenido

Archivos y Medios

Sube y administra archivos desde el código de tu app. Cada archivo obtiene una URL pública permanente.

Proyecta proporciona una API de Archivos a través del SDK para la gestión programática de archivos desde el código de tu app.

El campo de chat acepta imágenes directamente — pega una captura de pantalla o arrastra un archivo de imagen al campo. Formatos soportados: PNG, JPEG, WebP, GIF, AVIF. Tamaño máximo: 10 MB por imagen.

Los adjuntos del chat forman parte del mensaje, no de tu biblioteca de archivos. Para almacenamiento persistente, usa el SDK.

Cada app de Proyecta publicada tiene acceso a una API de almacenamiento de archivos a través del SDK de Proyecta. El SDK soporta listar, obtener y subir archivos. Los archivos subidos obtienen una URL pública permanente que puedes referenciar desde tu app.

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 ID
const 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 URL
const { 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 URL
await fetch(upload_url, {
method: 'PUT',
body: fileBytes,
headers: { 'Content-Type': 'image/png' },
});
// Step 3: finalize to get the permanent file record
const uploaded = await proyecta.files.finalize({ fileId });
console.log(uploaded.url); // permanent public URL, now populated

Cada archivo contiene:

CampoDescripción
idIdentificador único (cadena numérica snowflake)
urlURL pública permanente (disponible tras el paso de finalización)
filenameNombre original del archivo al subirlo
mime_typeimage/jpeg, application/pdf, etc.
sizeTamaño en bytes
pathRuta de carpeta opcional (ej. /images/blog)
content_hashSHA-256 del contenido del archivo
metadataMetadatos arbitrarios en formato clave/valor
createdMarca de tiempo de creación en ISO 8601
updatedMarca de tiempo de última actualización en ISO 8601

Las subidas de archivos se gestionan a través del AI builder. Pídele a la IA que construya el flujo de subida por ti:

  • "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"

La IA conecta la subida en el código de tu app usando la API de subida en dos pasos del SDK y referencia la URL pública devuelta. También puedes llamar a files.create() / files.finalize() directamente desde el código de tu propia app.

¿Las URLs de los archivos son públicas?

Sí. Cualquier archivo devuelto por la API de Archivos tiene una URL pública permanente. No subas nada que no quieras exponer.

¿Qué tan grande puede ser un archivo?

Los límites por archivo dependen de tu plan. Los adjuntos del chat tienen un límite de 10 MB por imagen.

¿Puedo redimensionar o recortar imágenes desde la URL?

Las transformaciones de imágenes en tiempo real (redimensionar, recortar, conversión de formato) están en el roadmap.

  • Transformaciones de imágenes mediante parámetros en la URL (redimensionar, recortar, conversión de formato)
  • Organización en carpetas — crea y administra rutas de carpetas en el panel
  • “Add to Chat” desde una fila de archivo, para poder agregar recursos de la biblioteca directamente a la conversación con la IA