ストレージ — local / S3 / Azure
ストレージ — local / S3 / Azure
添付ファイル・画像などの バイナリストレージ の設定です。セルフホスト運用者向け。
こんなときに読む
- 画像や PDF 添付が保存されない・表示されない
- 本番で S3 や Azure Blob に保存先を移したい
- Docker 再起動後にファイルが消える理由を知りたい
ドライバー一覧
環境変数 STORAGE_DRIVER で選択します(.env / docker-compose)。
| 値 | 用途 |
|---|---|
local |
サーバー上のローカルディスク(開発・小規模向け) |
s3 |
AWS S3 または S3 互換(MinIO 等) |
azure |
Azure Blob Storage |
local(デフォルト)
STORAGE_DRIVER=local
- ファイルはアプリコンテナ/サーバーのストレージボリュームに保存
- Docker ではボリュームをマウントしないと再作成時にデータが失われる
- 単一ノード・検証環境向け
S3
STORAGE_DRIVER=s3
AWS_S3_ACCESS_KEY_ID=
AWS_S3_SECRET_ACCESS_KEY=
AWS_S3_REGION=
AWS_S3_BUCKET=
AWS_S3_ENDPOINT= # MinIO 等の場合
AWS_S3_FORCE_PATH_STYLE= # 互換ストアで必要な場合 true
チェックポイント
- バケットのリージョンと IAM 権限(PutObject / GetObject)
APP_URLが外部から正しく参照できること(署名 URL 等)- エンドポイント URL は S3 互換製品のドキュメントに従う
Azure Blob Storage
STORAGE_DRIVER=azure
AZURE_STORAGE_ACCOUNT_NAME=
AZURE_STORAGE_ACCOUNT_KEY=
AZURE_STORAGE_CONTAINER=
- コンテナを事前作成するか、権限で自動作成できるかを確認
- 本番ではアカウントキーより Managed Identity 等の安全な方式を検討(製品バージョンのサポート範囲は公式ドキュメント参照)
共通設定
# デフォルト 50MB
FILE_UPLOAD_SIZE_LIMIT=
アップロード上限を超えると UI でエラーになります。インポート上限とは別設定です。
切り替え時の注意
| 作業 | 説明 |
|---|---|
| 既存ファイルの移行 | ドライバー変更だけでは自動コピーされない。移行ツールまたは手動同期が必要 |
| ダウンタイム | 切り替え中はアップロードを止めるかメンテナンス表示を検討 |
| バックアップ | DB とストレージの 両方 をバックアップ(No.10.4) |
トラブルシューティング
| 症状 | 確認 |
|---|---|
| 画像が壊れる・404 | STORAGE_DRIVER と実データの保存先の不一致 |
| S3 Access Denied | IAM・バケットポリシー・リージョン |
| ローカルで消えた | Docker ボリューム未設定 |
| 大きいファイルが失敗 | FILE_UPLOAD_SIZE_LIMIT、リバースプロキシの body サイズ |
関連ナレッジ
- 環境変数: 「必要インフラと環境変数リファレンス」(No.10.2)
- Docker: 「Docker Compose クイックスタート」(No.10.1)
- バックアップ: 「メール設定とバックアップ・更新」(No.10.4)
- FAQ: 「よくある質問」(No.11.1)