Bestanden & Media
Sla bestanden en media op vanuit je app. Elk bestand krijgt een permanente publieke URL.
Media in Proyecta bestaat uit twee lagen. De meeste apps gebruiken de ingebouwde CMS-mediacapaciteit — afbeelding- en bestandsuploads die de AI voor je in je beheerpaneel en formulieren integreert. Daaronder biedt een lager niveau Files API directe controle wanneer je dat nodig hebt. Beide slaan op in CDN-ondersteunde objectopslag en geven een permanente publieke URL terug.
Chat-bijlagen
Section titled “Chat-bijlagen”De chatinvoer accepteert afbeeldingen direct — plak een schermafbeelding of sleep een afbeeldingsbestand naar de invoer. Ondersteunde formaten: PNG, JPEG, WebP, GIF, AVIF. Maximale grootte: 10 MB per afbeelding.
Chat-bijlagen maken deel uit van het bericht, niet van je bestandsbibliotheek. Gebruik voor permanente opslag de ingebouwde media-uploads of de Files API.
Ingebouwde media-uploads (de CMS-mediacapaciteit)
Section titled “Ingebouwde media-uploads (de CMS-mediacapaciteit)”De meeste apps raken de Files API niet direct aan — media is een ingebouwde CMS-capaciteit. De app-template wordt geleverd met twee upload-hooks in @/hooks/useContent, en de AI integreert deze in je UI. Je beschrijft wat je wilt (“een afbeeldingsveld bij mijn producten”, “een bestandsupload in mijn contactformulier”) en Proyecta gebruikt de juiste:
| Hook | Waar het wordt gebruikt | Endpoint | Maximale grootte |
|---|---|---|---|
useAssetUpload() |
Beheermediabibliotheek — ondersteunt de asset-kiezer in de inhoudseditor van het beheerpaneel | POST /v1/public/files |
10 MB |
useFormFileUpload() |
Openbare formulierbestanden — bezoekersupload op een <FormBlock/>-bestandsveld (bonnen, foto’s) |
POST /v1/public/uploads |
5 MB |
Beide hooks retourneren een permanente publieke url die je opslaat bij de inhoudsvermelding (beheer) of formulierinzending (openbaar). Een paar dingen om te weten:
- Beide limieten worden in code afgedwongen, niet per abonnement — 10 MB voor beheermedia, 5 MB voor openbare formulierbestanden.
- Geaccepteerde typen zijn afbeeldingen (behalve SVG) en alleen PDF. SVG wordt om veiligheidsredenen geweigerd; grote afbeeldingen worden automatisch verkleind vóór de upload.
- Je roept deze niet zelf aan — de AI koppelt ze. Gebruik de Files API hieronder alleen voor bestandsverwerking op een lager niveau of op maat.
De Files API
Section titled “De Files API”Elke gepubliceerde Proyecta-app kan bestanden opslaan en serveren. Vanuit de pagina’s van je app is dat één aanroep — de meerstaps-signed-upload wordt voor je afgehandeld:
import * as platform from '@/lib/platformClient.ts';
// Upload straight from a file input — one call, no signed-URL jugglingasync function onPick(file: File) { const asset = await platform.assetDirectUpload({ blob: file, filename: file.name, mimeType: file.type, }); console.log(asset.url); // permanent public URL}
// List what's storedconst { assets, hasMore } = await platform.assetList({ limit: 20 });
// Remove oneawait platform.assetDelete(asset.id);Privébestanden. Geef visibility: 'private' mee om een bestand buiten de publieke bucket op te slaan, zonder permanente URL. Je leest het terug via een kortlevende link:
const { url, expiresAt } = await platform.assetSignedUrl(asset.id, { variant: 'thumbnail' });Gebruik privé + signed URL’s voor alles wat niet te raden mag zijn — uploads van klanten, identiteitsdocumenten, betaalde downloads.
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 afbeeldingsgalerij 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 en verwijst naar de teruggegeven publieke URL.
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 niets wat je niet openbaar wilt maken.
Hoe groot mag een bestand zijn?
Bestandsgroottes worden in code beperkt, niet per abonnement: 10 MB voor uploads naar de beheermediabibliotheek (useAssetUpload), 5 MB voor openbare formulierbestandsuploads (useFormFileUpload), en 10 MB voor chat-bijlagen. Ingebouwde media-uploads accepteren alleen afbeeldingen (behalve SVG) en PDF.
Kan ik afbeeldingen vergroten, verkleinen of bijsnijden via de URL?
On-the-fly afbeeldingstransformaties (formaat wijzigen, bijsnijden, formaatconversie) staan op de roadmap.
Binnenkort beschikbaar
Section titled “Binnenkort beschikbaar”- Afbeeldingstransformaties via URL-parameters (formaat wijzigen, bijsnijden, formaatconversie)
- Maporganisatie — maak mappaden aan en beheer deze voor opgeslagen bestanden