Fichiers & Médias
Stockez des fichiers et des médias depuis votre application. Chaque fichier obtient une URL publique permanente.
Les médias dans Proyecta fonctionnent sur deux niveaux. La plupart des applications utilisent la capacité média CMS intégrée — des uploads d’images et de fichiers que l’IA connecte automatiquement à ton panneau d’administration et à tes formulaires. En dessous, une API Files de bas niveau te donne un contrôle direct quand tu en as besoin. Les deux stockent sur un object storage adossé à un CDN et renvoient une URL publique permanente.
Pièces jointes dans le chat
Section intitulée « Pièces jointes dans le chat »L’entrée du chat accepte directement les images — colle une capture d’écran ou fais glisser un fichier image dans la zone de saisie. Formats supportés : PNG, JPEG, WebP, GIF, AVIF. Taille maximale : 10 Mo par image.
Les pièces jointes du chat font partie du message, pas de ta bibliothèque de fichiers. Pour un stockage persistant, utilise les uploads médias intégrés ou l’API Files.
Uploads médias intégrés (la capacité média CMS)
Section intitulée « Uploads médias intégrés (la capacité média CMS) »La plupart des applications n’utilisent pas directement l’API Files — les médias sont une capacité CMS intégrée. Le template d’application embarque deux hooks d’upload dans @/hooks/useContent, et l’IA les connecte à ton interface. Tu décris ce que tu veux (« un champ image sur mes produits », « un upload de fichier sur mon formulaire de contact ») et Proyecta utilise le bon :
| Hook | Utilisation | Endpoint | Limite de taille |
|---|---|---|---|
useAssetUpload() |
Bibliothèque médias admin — alimente le sélecteur d’assets dans l’éditeur de contenu du panneau d’administration | POST /v1/public/files |
10 Mo |
useFormFileUpload() |
Fichiers de formulaires publics — uploads de visiteurs sur un champ fichier <FormBlock/> (reçus, photos) |
POST /v1/public/uploads |
5 Mo |
Les deux hooks renvoient une url publique permanente que tu stockes sur l’entrée de contenu (admin) ou la soumission de formulaire (public). Quelques points à retenir :
- Les deux limites sont appliquées dans le code, et non par plan tarifaire — 10 Mo pour les médias admin, 5 Mo pour les fichiers de formulaires publics.
- Seuls les images (sauf SVG) et les PDF sont acceptés. Le SVG est rejeté pour des raisons de sécurité ; les grandes images sont automatiquement réduites avant l’upload.
- Tu n’appelles pas ces hooks directement — c’est l’IA qui les monte. Recours à l’API Files ci-dessous uniquement pour la gestion de fichiers de bas niveau ou personnalisée.
L’API Files
Section intitulée « L’API Files »Chaque application Proyecta publiée peut stocker et servir des fichiers. Depuis les pages de ton application, cela tient en un seul appel — la mécanique d’upload signé en plusieurs étapes est gérée pour toi :
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);Fichiers privés. Passe visibility: 'private' pour stocker un fichier hors du bucket public, sans URL permanente. Relis-le ensuite via un lien à durée de vie limitée :
const { url, expiresAt } = await platform.assetSignedUrl(asset.id, { variant: 'thumbnail' });Utilise le mode privé + les URLs signées pour tout ce qui ne doit pas être devinable — uploads de clients, pièces d’identité, téléchargements payants.
Comment les fichiers sont-ils uploadés dans mon application ?
Section intitulée « Comment les fichiers sont-ils uploadés dans mon application ? »Les uploads de fichiers sont gérés via le builder IA. Demande à l’IA de construire le flux d’upload pour toi :
"Laisse les utilisateurs uploader une photo de profil et la stocker dans Proyecta Files""Ajoute une galerie d'images où les utilisateurs connectés peuvent uploader et consulter leurs photos""Permets-moi de joindre des factures PDF aux commandes"
L’IA connecte l’upload dans le code de ton application et référence l’URL publique renvoyée.
Les URLs des fichiers sont-elles publiques ?
Oui. Tout fichier renvoyé par l’API Files dispose d’une URL publique permanente. N’uploade rien que tu ne souhaites pas exposer.
Quelle taille maximale peut avoir un fichier ?
Les tailles de fichiers sont limitées dans le code, et non par plan tarifaire : 10 Mo pour les uploads de la bibliothèque médias admin (useAssetUpload), 5 Mo pour les uploads de fichiers via formulaires publics (useFormFileUpload), et 10 Mo pour les pièces jointes du chat. Les uploads médias intégrés acceptent uniquement les images (sauf SVG) et les PDF.
Puis-je redimensionner ou recadrer des images via l’URL ?
Les transformations d’images à la volée (redimensionnement, recadrage, conversion de format) sont prévues dans la feuille de route.
Prochainement
Section intitulée « Prochainement »- Transformations d’images via des paramètres d’URL (redimensionnement, recadrage, conversion de format)
- Organisation en dossiers — créer et gérer des chemins de dossiers pour les fichiers stockés