Salta ai contenuti

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.

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.

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

Ogni file contiene:

CampoDescrizione
idIdentificatore univoco (stringa snowflake numerica)
urlURL pubblico permanente (popolato dopo il passaggio di finalizzazione)
filenameNome originale del file al momento del caricamento
mime_typeimage/jpeg, application/pdf, ecc.
sizeDimensione in byte
pathPercorso cartella opzionale (es. /images/blog)
content_hashSHA-256 del contenuto del file
metadataMetadati chiave/valore arbitrari
createdTimestamp di creazione ISO 8601
updatedTimestamp dell’ultimo aggiornamento ISO 8601

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.

  • 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