Conservare gli audiolibri in un archivio compatibile con S3
Aggiornato il 27 ottobre 2026
Berth può conservare i libri in qualsiasi bucket compatibile con S3 invece che sul disco del server. Il server tiene la libreria e decide chi può ascoltare; l'audio vero e proprio può viaggiare dal bucket o da una CDN direttamente ai telefoni.
Perché un object storage
- Un piccolo VPS o un Raspberry Pi non ha bisogno di un disco grande.
- I telefoni scaricano direttamente dall'archivio, quindi la banda del server non fa da collo di bottiglia.
- Il database e i suoi backup restano piccoli; con S3 il server può anche mettere ogni giorno una copia del database nel bucket.
Provider supportati
Va bene qualsiasi servizio compatibile con S3. Il pannello web ha dei preset che compilano endpoint e regione per AWS S3, Cloudflare R2, Yandex Cloud, Backblaze B2, Bunny Storage e MinIO. Per Cloudflare R2 c'è anche una procedura guidata che crea per te il bucket e le chiavi.
Collegare un bucket
- Nella console del tuo provider crea un bucket e una chiave di accesso con permessi di lettura e scrittura su di esso.
- Aggiungi una regola CORS al bucket: origine il tuo indirizzo di Berth, metodi GET, HEAD, PUT, header
*. Il pannello web carica i file dal browser direttamente nel bucket, quindi questa regola è obbligatoria. - Nel pannello web di Berth apri le impostazioni degli archivi, aggiungi un archivio, scegli «Bucket S3» e seleziona un preset o compila i campi a mano.
- Compila nome, bucket, endpoint (vuoto per AWS), regione (
us-east-1se vuota), ID chiave di accesso e chiave di accesso segreta. Attiva gli indirizzi in stile percorso per MinIO; si attivano da soli per un indirizzo IP o localhost. - Premi «Verifica connessione»: Berth scrive, rilegge ed elimina un piccolo file di prova e verifica CORS dagli indirizzi del tuo server.
- Imposta l'archivio come predefinito: i nuovi libri vanno nell'archivio predefinito.
Le chiavi sono conservate cifrate con la chiave del server secret.key e non vengono mai più mostrate.
Come l'audio arriva ai telefoni
Senza firma, i file dietro una CDN si aprono con un link che non scade mai. I loro nomi sono hash SHA-256 e non si possono indovinare, ma revocare un dispositivo non chiude i link che ha già. L'autenticazione con token di Bunny CDN fa scadere i link dopo 6 ore.
| Modalità | Come funziona | Quando usarla |
|---|---|---|
| Link diretti (predefinita) | I telefoni ricevono un link firmato al bucket che dura 15 minuti | Toglie carico al server |
| Tramite il server | Il server trasmette il file; i link durano 6 ore e smettono subito di funzionare quando un dispositivo viene revocato | I telefoni non riescono a raggiungere il bucket |
| Tramite una CDN | I link puntano a una CDN o a un indirizzo pubblico del bucket | La più veloce quando il bucket ha una CDN |
Buono a sapersi
- Puoi avere più archivi contemporaneamente; ogni libro mostra in quale si trova.
- Spostare libri esistenti tra archivi non è ancora possibile: scegli l'archivio predefinito prima di caricare.
- Un archivio che contiene libri non può essere eliminato. Eliminare un profilo non cancella mai i file nel bucket.
Domande
Berth ha bisogno dell'accesso pubblico al bucket?
No. Nella modalità predefinita il bucket resta privato e i telefoni ricevono link firmati che scadono dopo 15 minuti.
La verifica dice che il bucket non accetta caricamenti da un browser. E ora?
Aggiungi la regola CORS: origine l'indirizzo di Berth, metodi GET, HEAD, PUT, header *. Poi ripeti la verifica.