File e Media
Carica e gestisci i file dal codice della tua app. Ogni file ottiene un URL pubblico permanente.
Proyecta fornisce una Files API tramite l’SDK per la gestione programmatica dei file dal codice della tua app.
Allegati nella chat
Sezione intitolata “Allegati nella chat”L’input della chat accetta immagini direttamente — incolla uno screenshot o trascina un file immagine sull’input. Formati supportati: PNG, JPEG, WebP, GIF, AVIF. Dimensione massima: 10 MB per immagine.
Gli allegati della chat fanno parte del messaggio, non della tua libreria di file. Per uno storage persistente, usa l’SDK.
La Files API (SDK)
Sezione intitolata “La Files API (SDK)”Ogni app Proyecta pubblicata ha accesso a un’API di archiviazione file tramite l’SDK di Proyecta. L’SDK supporta le operazioni di listing, fetching e uploading dei file. I file caricati ottengono un URL pubblico permanente a cui puoi fare riferimento dalla tua 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 populatedOgni file contiene:
| Campo | Descrizione |
|---|---|
id | Identificatore univoco (stringa snowflake numerica) |
url | URL pubblico permanente (popolato dopo il passaggio di finalizzazione) |
filename | Nome originale del file al momento del caricamento |
mime_type | image/jpeg, application/pdf, ecc. |
size | Dimensione in byte |
path | Percorso cartella opzionale (es. /images/blog) |
content_hash | SHA-256 del contenuto del file |
metadata | Metadati chiave/valore arbitrari |
created | Timestamp di creazione ISO 8601 |
updated | Timestamp dell’ultimo aggiornamento ISO 8601 |
Come vengono caricati i file nella mia app?
Sezione intitolata “Come vengono caricati i file nella mia app?”I caricamenti di file vengono gestiti tramite l’AI builder. Chiedi all’AI di costruire il flusso di upload per te:
"Permetti agli utenti di caricare una foto profilo e salvala in Proyecta Files""Aggiungi una galleria immagini dove gli utenti autenticati possono caricare e visualizzare le proprie foto""Permettimi di allegare fatture PDF agli ordini"
L’AI configura il caricamento nel codice della tua app utilizzando l’API di upload a due passaggi dell’SDK e fa riferimento all’URL pubblico restituito. Puoi anche chiamare files.create() / files.finalize() direttamente dal codice della tua app.
Gli URL dei file sono pubblici?
Sì. Qualsiasi file restituito dalla Files API ha un URL pubblico permanente. Non caricare nulla che non vuoi rendere accessibile.
Quanto può essere grande un file?
I limiti per singolo file dipendono dal tuo piano. Gli allegati della chat sono limitati a 10 MB per immagine.
Posso ridimensionare o ritagliare le immagini tramite URL?
Le trasformazioni delle immagini al volo (ridimensionamento, ritaglio, conversione del formato) sono nella roadmap.
Prossimamente
Sezione intitolata “Prossimamente”- Trasformazioni delle immagini tramite parametri URL (ridimensionamento, ritaglio, conversione del formato)
- Organizzazione in cartelle — crea e gestisci percorsi di cartelle nel pannello
- “Add to Chat” da una riga di file, così le risorse della libreria possono essere inserite nella conversazione con l’AI