Bestanden & Media
Upload en beheer bestanden vanuit je app-code. Elk bestand krijgt een permanente publieke URL.
Proyecta biedt een Files API via de SDK voor programmatisch bestandsbeheer vanuit je app-code.
Chat-bijlagen
Section titled “Chat-bijlagen”Het chatinvoerveld accepteert afbeeldingen direct — plak een screenshot of sleep een afbeeldingsbestand naar het invoerveld. Ondersteunde indelingen: PNG, JPEG, WebP, GIF, AVIF. Maximale grootte: 10 MB per afbeelding.
Chat-bijlagen maken deel uit van het bericht, niet van je bestandenbibliotheek. Gebruik de SDK voor permanente opslag.
De Files API (SDK)
Section titled “De Files API (SDK)”Elke gepubliceerde Proyecta-app heeft toegang tot een bestandsopslag-API via de Proyecta SDK. De SDK ondersteunt het weergeven, ophalen en uploaden van bestanden. Geüploade bestanden krijgen een permanente publieke URL waarnaar je vanuit je app kunt verwijzen.
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 populatedElk bestand bevat de volgende velden:
| Veld | Beschrijving |
|---|---|
id | Unieke identificator (numerieke snowflake-string) |
url | Permanente publieke URL (ingevuld na de finalize-stap) |
filename | Oorspronkelijke bestandsnaam bij upload |
mime_type | image/jpeg, application/pdf, etc. |
size | Grootte in bytes |
path | Optioneel mappad (bijv. /images/blog) |
content_hash | SHA-256 van de bestandsinhoud |
metadata | Vrije sleutel/waarde-metadata |
created | ISO 8601-aanmaaktijdstempel |
updated | ISO 8601-tijdstempel van laatste wijziging |
Hoe worden bestanden naar mijn app geüpload?
Section titled “Hoe worden bestanden naar mijn app geüpload?”Bestandsuploads worden afgehandeld via de AI-builder. Vraag de AI om de uploadflow voor je te bouwen:
"Laat gebruikers een profielfoto uploaden en sla deze op in Proyecta Files""Voeg een fotogalerij toe waar ingelogde gebruikers hun foto's kunnen uploaden en bekijken""Laat me PDF-facturen aan bestellingen koppelen"
De AI koppelt de upload in je app-code via de tweestaps-upload-API van de SDK en verwijst naar de teruggegeven publieke URL. Je kunt files.create() / files.finalize() ook rechtstreeks vanuit je eigen app-code aanroepen.
Veelgestelde vragen
Section titled “Veelgestelde vragen”Zijn de bestands-URL’s openbaar?
Ja. Elk bestand dat door de Files API wordt geretourneerd, heeft een permanente publieke URL. Upload geen bestanden die je niet openbaar wilt maken.
Hoe groot mag een bestand zijn?
De limiet per bestand is afhankelijk van je abonnement. Chat-bijlagen zijn beperkt tot 10 MB per afbeelding.
Kan ik afbeeldingen via de URL verkleinen of bijsnijden?
On-the-fly afbeeldingstransformaties (verkleinen, bijsnijden, formaatconversie) staan op de roadmap.
Binnenkort beschikbaar
Section titled “Binnenkort beschikbaar”- Afbeeldingstransformaties via URL-parameters (verkleinen, bijsnijden, formaatconversie)
- Mappenorganisatie — maak mappen aan en beheer mappaden in het paneel
- “Add to Chat” vanuit een bestandsrij, zodat bibliotheekitems in het AI-gesprek kunnen worden ingevoegd