本文へスキップ
Berth

オーディオブックをS3互換ストレージに保存

2026年10月27日更新

Berthは、サーバーのディスクの代わりに任意のS3互換バケットに書籍を保存できます。サーバーはライブラリを管理し、誰が聴けるかを決めます。音声そのものは、バケットやCDNからスマートフォンへ直接届けられます。

オブジェクトストレージを使う理由

対応プロバイダー

S3互換のサービスならどれでも使えます。管理画面には、エンドポイントとリージョンを自動入力するプリセットがあります:AWS S3、Cloudflare R2、Yandex Cloud、Backblaze B2、Bunny Storage、MinIO。Cloudflare R2には、バケットとキーを自動で作成するウィザードもあります。

バケットを接続

  1. プロバイダーのコンソールで、バケットと、そのバケットへの読み書き権限を持つアクセスキーを作成します。
  2. バケットにCORSルールを追加します:オリジンはBerthのアドレス、メソッドはGET、HEAD、PUT、ヘッダーは*です。管理画面はブラウザからバケットへ直接ファイルをアップロードするため、このルールが必要です。
  3. Berthの管理画面でストレージの設定を開き、ストレージを追加して「S3バケット」を選び、プリセットを選ぶか各項目を自分で入力します。
  4. 名前、バケット、エンドポイント(AWSの場合は空欄)、リージョン(空欄ならus-east-1)、アクセスキーID、シークレットアクセスキーを入力します。MinIOではパス形式のアドレスをオンにします。IPアドレスやlocalhostの場合は自動でオンになります。
  5. 「接続をチェック」を押します。Berthは小さなテストファイルを書き込み、読み戻して削除し、サーバーのアドレスからCORSを確認します。
  6. そのストレージをデフォルトにします。新しい書籍はデフォルトのストレージに保存されます。

キーはサーバーキーsecret.keyで暗号化して保存され、二度と表示されません。

音声がスマートフォンに届くまで

署名なしの場合、CDNの背後にあるファイルは期限のないリンクで開けます。ファイル名はSHA-256ハッシュなので推測はできませんが、デバイスの接続を取り消しても、そのデバイスがすでに持っているリンクは無効になりません。Bunny CDNのトークン認証を使うと、リンクは6時間で失効します。

モード仕組み使いどころ
直接リンク(デフォルト)スマートフォンは15分間有効な、バケットへの署名付きリンクを受け取るサーバーの負荷を減らせる
サーバー経由サーバーがファイルをストリーミングする。リンクは6時間有効で、デバイスの接続を取り消すとすぐに無効になるスマートフォンがバケットにアクセスできない
CDN経由リンクはCDNまたはバケットの公開アドレスを指すバケットにCDNがある場合に最速

知っておきたいこと

よくある質問

Berthにはバケットの公開アクセスが必要ですか?

いいえ。デフォルトのモードではバケットは非公開のままで、スマートフォンは15分で失効する署名付きリンクを受け取ります。

チェックで「バケットがブラウザからのアップロードを受け付けない」と表示されます。どうすればいいですか?

CORSルールを追加してください:オリジンはBerthのアドレス、メソッドはGET、HEAD、PUT、ヘッダーは*です。そのあと、もう一度チェックを実行します。