Cloudflare R2統合
R2は、CloudflareのCDNサービスとシームレスに統合するCloudflareが提供するオブジェクトストレージサービスで、静的ファイルのストレージと配信ソリューションとして機能します。
ファイルストレージが必要なシナリオは多数あります。例えば:
- ユーザーアバターの保存
- AI生成された画像や動画のクラウド保存
- ブログ画像の保存
これらのシナリオ要件が特定されると、管理者にはファイル管理バックエンドも必要になります。
Nexty.devボイラープレートは、Cloudflare R2上に構築されたファイルアップロードと削除メソッド、およびファイルの表示と管理のためのバックエンドを提供することで、これらのニーズに対応します。
この章では、Cloudflare R2の設定を完了します。
Cloudflare R2の設定
- Cloudflare R2ページにアクセスしてBucketの作成を開始します


- Bucket設定に入り、
R2_BUCKET_NAME
とR2_ACCOUNT_ID
を環境変数にコピーします

- カスタムドメインを設定します


- 設定されたカスタムドメインに
https://
プレフィックスを追加して環境変数R2_PUBLIC_URL
に設定します

# .env.local または .env
R2_PUBLIC_URL=https://R2_PUBLIC_URL
- CORSポリシーを設定します。これは、どのオリジン(ドメイン、プロトコル、ポート)がR2 Bucketに保存されたリソースにアクセスできるかを制御します。これは、不正なクロスオリジンアクセスからリソースを保護するセキュリティメカニズムです。


[
{
"AllowedOrigins": [
"http://127.0.0.1:3006",
"http://localhost:3006",
"https://kontextimage.com",
"https://flux-kontext.nexty.dev"
],
"AllowedMethods": [
"GET",
"PUT",
"HEAD"
],
"AllowedHeaders": [
"Content-Type",
"Content-Length"
],
"ExposeHeaders": [
"Content-Length",
"Content-Type",
"Content-Disposition",
"ETag",
"Last-Modified"
],
"MaxAgeSeconds": 3600
}
]
- 次にR2ホームページに戻り、API Keyの作成を開始します



- API Keyを環境変数
R2_ACCESS_KEY_ID
とR2_SECRET_ACCESS_KEY
に追加します

検証
ソースコードリポジトリを開始した後、以下のモジュールでR2関連機能をテストできます:
/dashboard/settings
ページでアバターアップロードをテスト/ai-demo
ページでAI生成画像と動画のアップロードをテスト/dashboard/images
ページでAI Demoで生成された画像と動画を管理