Webアプリを作るとき、ユーザーのプロフィール画像や商品写真、PDFなどを保存する仕組みは欠かせません。
そんなときに便利なのが SupabaseのStorage機能 です。クラウド上に安全にファイルを保存し、アプリから取得・表示することができます。
Supabase Storageの特徴
- 任意のファイル形式に対応
画像、動画、PDF、ドキュメントなど幅広く保存可能です。 - バケット単位での管理
S3のように「バケット」を作り、その中でファイルを整理できます。 - 認証ルールとの連携
Supabaseの認証(Auth)と組み合わせることで、ログインユーザーだけがアクセスできるルールを設定可能です。 - CDNによる高速配信
公開設定をすれば、外部からでもCDN経由でスピーディにアクセスできます。
基本的な使い方
- バケットを作成
Supabaseコンソールにログインし、「Storage」タブから新しいバケットを作成します。
例:「avatars」という名前でプロフィール画像用のバケットを作成。 - ファイルをアップロード
アプリからファイルをアップロードするには、JavaScript SDKを使います。// バケットにファイルをアップロード const { data, error } = await supabase.storage .from("avatars") .upload("user1/profile.png", file);
- 公開URLを取得
公開用のURLを取得して、フロントエンドで表示することができます。const { publicUrl } = supabase.storage .from("avatars") .getPublicUrl("user1/profile.png");
応用例
- ユーザーごとのプロフィール画像を保存
- ECサイトの商品画像を管理
- PDFやマニュアルのダウンロードリンクを配布
- ブログ記事のアイキャッチ画像を保存
まとめ
Supabase Storageは、S3やFirebase Storageのようなクラウドストレージを、より簡単に導入できる機能 です。
特に、認証機能(Auth)と組み合わせることで「ユーザーごとの専用フォルダ」を作り、安全にファイルを管理できます。
「認証(Auth)」に続き、今回の「Storage」も、Supabaseの強力な武器のひとつ。
これらを組み合わせることで、本格的なWebアプリを素早く構築できるようになります。