Stockage de fichiers
Servez les fichiers de votre application — avatars, documents, exports — depuis l’API de stockage du projet, avec la même clé API que le reste.
Buckets
Un bucket est un conteneur nommé. Choisissez sa visibilité : privé, où chaque lecture passe par une requête authentifiée, ou public, où les objets sont servis par URL directe.
Envoyer et parcourir les fichiers
La console liste les buckets du projet, permet l’envoi par glisser-déposer, l’aperçu et la suppression. Vos applications utilisent la même API, sous /storage/v1/.
JavaScript
import { createClient } from '@kuunda/kuunda-js';
const kuunda = createClient(process.env.NEXT_PUBLIC_KUUNDA_URL!, process.env.NEXT_PUBLIC_KUUNDA_ANON_KEY!);
// Lister
const { data: fichiers } = await kuunda.storage.from('avatars').list();
// Envoyer : la session de l'utilisateur accompagne la requête
const { data: envoye, error } = await kuunda.storage
.from('avatars')
.upload('utilisateurs/1/photo.png', fichier);Le SDK réutilise la clé API et le jeton de session du client, comme pour les tables.
Contrôler l’accès
Les objets ne sont pas couverts par les politiques de sécurité des tables. L’accès se règle par la clé API appelante et la visibilité du bucket — d’où deux règles :
- Ne mettez jamais la clé de service dans un navigateur ou une application mobile : elle contourne les restrictions d’accès.
- Pour un fichier privé destiné à un utilisateur précis, passez par votre backend, qui vérifie l’autorisation puis renvoie le contenu.
Migration
Un import depuis un autre fournisseur recrée vos buckets puis transfère les fichiers. Commencez par les données, puis les fichiers : un objet orphelin est plus facile à rejouer qu’une table manquante.