Arquivos e Mídia
Faça upload e gerencie arquivos a partir do código do seu app. Cada arquivo recebe uma URL pública permanente.
O Proyecta disponibiliza uma Files API via SDK para gerenciamento programático de arquivos a partir do código do seu app.
Anexos no chat
Seção intitulada “Anexos no chat”O campo de chat aceita imagens diretamente — cole um screenshot ou arraste um arquivo de imagem para o campo. Formatos suportados: PNG, JPEG, WebP, GIF, AVIF. Tamanho máximo: 10 MB por imagem.
Anexos de chat fazem parte da mensagem, não da sua biblioteca de arquivos. Para armazenamento persistente, use o SDK.
A Files API (SDK)
Seção intitulada “A Files API (SDK)”Todo app Proyecta publicado tem acesso a uma API de armazenamento de arquivos por meio do SDK do Proyecta. O SDK oferece suporte para listagem, busca e upload de arquivos. Os arquivos enviados recebem uma URL pública permanente que pode ser referenciada no seu 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 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 populatedCada arquivo contém:
| Campo | Descrição |
|---|---|
id | Identificador único (string numérica no formato snowflake) |
url | URL pública permanente (preenchida após a etapa de finalização) |
filename | Nome original do arquivo no momento do upload |
mime_type | image/jpeg, application/pdf, etc. |
size | Tamanho em bytes |
path | Caminho de pasta opcional (ex.: /images/blog) |
content_hash | SHA-256 do conteúdo do arquivo |
metadata | Metadados arbitrários em chave/valor |
created | Timestamp de criação no formato ISO 8601 |
updated | Timestamp da última atualização no formato ISO 8601 |
Como fazer upload de arquivos para o meu app?
Seção intitulada “Como fazer upload de arquivos para o meu app?”Os uploads de arquivos são feitos por meio do AI builder. Peça à IA para montar o fluxo de upload:
"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"
A IA configura o upload no código do seu app usando a API de upload em duas etapas do SDK e referencia a URL pública retornada. Você também pode chamar files.create() / files.finalize() diretamente do seu próprio código.
Perguntas frequentes
Seção intitulada “Perguntas frequentes”As URLs dos arquivos são públicas?
Sim. Qualquer arquivo retornado pela Files API possui uma URL pública permanente. Não faça upload de nada que você não queira expor.
Qual é o tamanho máximo de um arquivo?
Os limites por arquivo dependem do seu plano. Anexos de chat têm limite de 10 MB por imagem.
Posso redimensionar ou recortar imagens pela URL?
Transformações de imagem em tempo real (redimensionamento, recorte, conversão de formato) estão no roadmap.
Em breve
Seção intitulada “Em breve”- Transformações de imagem via parâmetros de URL (redimensionamento, recorte, conversão de formato)
- Organização em pastas — crie e gerencie caminhos de pasta no painel
- “Add to Chat” a partir de uma linha de arquivo, para que os assets da biblioteca possam ser inseridos na conversa com a IA