Stocker ses livres audio dans un stockage compatible S3
Mis à jour le 27 octobre 2026
Berth peut stocker les livres dans n'importe quel bucket compatible S3 au lieu du disque du serveur. Le serveur garde la bibliothèque et décide qui peut écouter ; l'audio lui-même peut aller du bucket ou d'un CDN directement vers les téléphones.
Pourquoi un stockage objet
- Un petit VPS ou un Raspberry Pi n'a pas besoin d'un gros disque.
- Les téléphones téléchargent directement depuis le stockage : la bande passante du serveur n'est pas un goulot d'étranglement.
- La base de données et ses sauvegardes restent légères ; avec S3, le serveur peut aussi déposer chaque jour une copie de la base dans le bucket.
Fournisseurs pris en charge
N'importe quel service compatible S3 fonctionne. L'administration propose des préréglages qui remplissent l'endpoint et la région pour : AWS S3, Cloudflare R2, Yandex Cloud, Backblaze B2, Bunny Storage et MinIO. Pour Cloudflare R2, un assistant crée aussi le bucket et les clés à votre place.
Connecter un bucket
- Créez un bucket et une clé d'accès en lecture et écriture sur ce bucket dans la console de votre fournisseur.
- Ajoutez une règle CORS au bucket : l'origine est votre adresse Berth, méthodes GET, HEAD, PUT, en-têtes
*. L'administration envoie les fichiers depuis le navigateur directement dans le bucket : cette règle est donc obligatoire. - Dans l'administration de Berth, ouvrez les paramètres de stockage, ajoutez un stockage, choisissez « Bucket S3 » et prenez un préréglage ou remplissez les champs vous-même.
- Renseignez le nom, le bucket, l'endpoint (vide pour AWS), la région (
us-east-1si vide), l'ID de clé d'accès et la clé d'accès secrète. Activez les adresses de type path-style pour MinIO ; elles s'activent d'elles-mêmes pour une adresse IP ou localhost. - Cliquez sur « Vérifier la connexion » : Berth écrit, relit puis supprime un petit fichier de test et vérifie CORS depuis les adresses de votre serveur.
- Définissez ce stockage par défaut : les nouveaux livres vont dans le stockage par défaut.
Les clés sont stockées chiffrées avec la clé du serveur secret.key et ne sont plus jamais affichées.
Comment l'audio arrive sur les téléphones
Sans signature, les fichiers derrière un CDN s'ouvrent via un lien qui n'expire jamais. Leurs noms sont des hachages SHA-256 impossibles à deviner, mais révoquer un appareil ne ferme pas les liens qu'il possède déjà. L'authentification par jeton de Bunny CDN fait expirer les liens au bout de 6 heures.
| Mode | Fonctionnement | Quand l'utiliser |
|---|---|---|
| Liens directs (par défaut) | Les téléphones reçoivent un lien signé vers le bucket, valable 15 minutes | Décharge le serveur |
| Via le serveur | Le serveur diffuse le fichier ; les liens durent 6 heures et cessent de fonctionner dès qu'un appareil est révoqué | Les téléphones ne peuvent pas joindre le bucket |
| Via un CDN | Les liens pointent vers un CDN ou une adresse publique du bucket | Le plus rapide quand le bucket a un CDN |
Bon à savoir
- Vous pouvez avoir plusieurs stockages à la fois ; chaque livre indique dans lequel il se trouve.
- Déplacer des livres existants d'un stockage à l'autre n'est pas encore possible : choisissez le stockage par défaut avant d'importer.
- Un stockage qui contient des livres ne peut pas être supprimé. Supprimer un profil ne supprime jamais les fichiers du bucket.
Questions
Berth a-t-il besoin d'un accès public au bucket ?
Non. Dans le mode par défaut, le bucket reste privé et les téléphones reçoivent des liens signés qui expirent au bout de 15 minutes.
La vérification indique que le bucket n'accepte pas les envois depuis un navigateur. Que faire ?
Ajoutez la règle CORS : l'origine est l'adresse de Berth, méthodes GET, HEAD, PUT, en-têtes *. Puis relancez la vérification.