Avoir tous les Pokémon
Comment compléter son Pokédex ? Découvrez les meilleures techniques et astuces pour attraper tous les Pokémon !
default
Architecture de stockage de fichiers
Dans Fumadocs, le stockage de fichiers est géré via une abstraction de système de fichiers. Ceci permet l'utilisation de différents systèmes de stockage (local, AWS S3, etc.) sans modifier le code de l'application.`FileDriver`
Le `FileDriver` est une interface qui définit les opérations de base pour interagir avec un système de fichiers. Les opérations incluent :- La lecture de fichiers
- L'écriture de fichiers
- La suppression de fichiers
- La copie de fichiers
- La vérification de l'existence d'un fichier
- La création de répertoires
Implémentations
Plusieurs implémentations de `FileDriver` sont disponibles :- `LocalFileDriver` : Utilise le système de fichiers local du serveur.
- `S3FileDriver` : Utilise le service de stockage AWS S3.
Configuration
Le `FileDriver` à utiliser est configuré via la variable d'environnement `STORAGE_DRIVER`. Exemple : ```bash STORAGE_DRIVER=local # ou s3 ``` La configuration spécifique à chaque `FileDriver` est définie via d'autres variables d'environnement. Exemple pour `S3FileDriver` : ```bash STORAGE_DRIVER=s3 AWS_S3_BUCKET=mon-bucket AWS_S3_REGION=eu-west-1 AWS_ACCESS_KEY_ID= Clé d'accès AWS_SECRET_ACCESS_KEY= Clé secrète ```Utilisation
Pour utiliser le système de stockage de fichiers, il faut utiliser la fonction `useFileStorage()` : ```typescript import { useFileStorage } from 'fumadocs-core/server' const fileStorage = useFileStorage() // Lire un fichier const fileContent = await fileStorage.read('mon-fichier.txt') // Écrire un fichier await fileStorage.write('mon-fichier.txt', 'Contenu du fichier') ``` La fonction `useFileStorage()` retourne une instance de `FileDriver` configurée selon les variables d'environnement.Avantages
- Abstraction du système de stockage : Facilite le changement de système de stockage sans modifier le code de l'application.
- Support de plusieurs systèmes de stockage : Permet d'utiliser le système de stockage le plus adapté aux besoins.
- Facilité d'utilisation : La fonction `useFileStorage()` simplifie l'accès au système de stockage.

