Lovable Cloudのファイルストレージ活用|画像アップロードの定石
プロフィール画像、添付ファイル、生成画像などをLovable Cloudストレージに保存し、安全に配信するベストプラクティス。
Lovable Cloudのストレージは認証・RLSと統合されたS3互換ストレージ。プライベート/パブリックバケットを使い分けて運用します。
推奨構成#
- avatars: 公開バケット(誰でも閲覧可)
- uploads: プライベートバケット(本人のみ)
- generated: プライベート、サーバー関数経由で配信
RLSの基本#
「自分のフォルダ(uid配下)にしか書き込めない」「読めるのは自分だけ」のpolicyをstorage.objectsに書きます。Lovableに頼めば自動生成されます。
実例ケーススタディ:写真共有アプリで月コストを1/4に#
ユーザー10,000人・写真500GBのアプリで、最初は全部 Cloud Storage に置いていたが、サムネイルだけCloud/オリジナルはS3+CloudFrontに分けたところ、月額コストが約1/4になりました。
- サムネ(〜200KB):Cloud Storage(即時表示・RLSで保護)
- オリジナル(数MB):S3直アップロード(presigned URL)+CloudFront配信
- DB:assets テーブルに storage_provider, key, size を保存して切り替え
つまずきポイント集#
- 症状:他人のファイルが見えてしまった → 原因:bucketをpublicにしてしまった。即private化+storage.objectsにowner=auth.uid()のpolicyを
- 症状:大きいファイルがアップで失敗 → 原因:50MB超。S3直アップロードへ切替、または resumable upload を使う
- 症状:画像URLが切れる → 対処:signed URLは有効期限がある。表示直前に発行 or 永続URLが必要ならpublic bucket+別RLS設計
FAQ追加#
Q. CDNは必要?
アクセスが日本国内中心で月10万PV以下なら不要です。海外ユーザーや動画配信を含むならCloudFront/Cloudflareを推奨します。
Q. 動画はCloudに置いて良い?
短尺(〜30秒)かつ少量なら可。本格的な動画配信はBunny.net・Mux・CloudflareStreamなど専用サービスに分離するのが結局安く・速くなります。
関連記事
- LovableとSupabaseの連携完全ガイド|Lovable Cloudとの違い・使い分け
LovableからSupabaseを使う3つの方法(Lovable Cloud / 直接接続 / セルフホスト)を比較。DB・認証・ストレージの実装パターンとRLSの注意点を解説。
- Lovable Cloud入門|DB・認証・ストレージをゼロ設定で使う
Lovable Cloudの全体像と、最小コストで使い始めるための初期設定ガイド。Supabaseを直接触らなくても本格バックエンドが動きます。
- Lovable Cloudで認証を作る|メール / Google / Appleログイン
Lovable Cloudのマネージド認証を使って、メールパスワード・Google・Appleログインを安全に組み込む手順とRLS設計。
※ 本記事は非公式の日本語ガイドです。最新情報は公式ドキュメントをご確認ください。