Sari la conținut

Fișiere și Media

Încarcă și gestionează fișiere din codul aplicației tale. Fiecare fișier primește un URL public permanent.

Proyecta pune la dispoziție un Files API prin SDK pentru gestionarea programatică a fișierelor din codul aplicației tale.

Câmpul de chat acceptă imagini direct — lipește un screenshot sau trage un fișier imagine în câmp. Formate acceptate: PNG, JPEG, WebP, GIF, AVIF. Dimensiune maximă: 10 MB per imagine.

Atașamentele din chat fac parte din mesaj, nu din biblioteca ta de fișiere. Pentru stocare persistentă, folosește SDK-ul.

Orice aplicație Proyecta publicată are acces la un API de stocare a fișierelor prin Proyecta SDK. SDK-ul suportă operațiunile de listare, obținere și încărcare a fișierelor. Fișierele încărcate primesc un URL public permanent pe care îl poți referenția din aplicația ta.

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

Fiecare fișier conține:

CâmpDescriere
idIdentificator unic (șir numeric de tip snowflake)
urlURL public permanent (populat după pasul de finalizare)
filenameNumele original al fișierului la încărcare
mime_typeimage/jpeg, application/pdf, etc.
sizeDimensiunea în octeți
pathCale de folder opțională (ex. /images/blog)
content_hashSHA-256 al conținutului fișierului
metadataMetadate arbitrare cheie/valoare
createdTimestamp de creare în format ISO 8601
updatedTimestamp ultima actualizare în format ISO 8601

Cum se încarcă fișierele în aplicația mea?

Section titled “Cum se încarcă fișierele în aplicația mea?”

Încărcarea fișierelor este gestionată prin AI builder. Cere AI-ului să construiască fluxul de upload pentru tine:

  • "Permite utilizatorilor să încarce o fotografie de profil și să o stocheze în Proyecta Files"
  • "Adaugă o galerie de imagini unde utilizatorii autentificați pot încărca și vizualiza fotografiile lor"
  • "Permite atașarea facturilor PDF la comenzi"

AI-ul configurează upload-ul în codul aplicației tale folosind API-ul de upload în doi pași din SDK și referențiază URL-ul public returnat. Poți apela și direct files.create() / files.finalize() din propriul cod al aplicației.

URL-urile fișierelor sunt publice?

Da. Orice fișier returnat de Files API are un URL public permanent. Nu încărca nimic ce nu dorești să fie expus public.

Cât de mare poate fi un fișier?

Limitele per fișier depind de planul tău. Atașamentele din chat sunt limitate la 10 MB per imagine.

Pot redimensiona sau decupa imagini direct din URL?

Transformările de imagini în timp real (redimensionare, decupare, conversie de format) se află pe roadmap.

  • Transformări de imagini prin parametri URL (redimensionare, decupare, conversie de format)
  • Organizare în foldere — creează și gestionează căi de foldere din panou
  • „Add to Chat” dintr-un rând de fișier, pentru ca elementele din bibliotecă să poată fi introduse în conversația cu AI-ul