对象存储
对象存储, 目前支持 Cloudflare R2, Vercel R2, Supabase
对象存储
对象存储是一种存储方式,它将数据存储在对象中,每个对象都有自己的唯一标识符。对象存储可以存储任何类型的数据,包括文本、图像、视频等。
目前应用的功能有:
- User Profile Avatar
支持的对象存储服务有:
- Cloudflare R2:
https://dash.cloudflare.com/[account-id]/r2/overview, 选择 R2 - Vercel Blob:
https://vercel.com/[team-id]/[project-id]/stores - Supabase Storage:
https://supabase.com/dashboard/project/[project-id]/storage
配置对象存储
Cloudflare R2
- 进入 R2 控制台:
https://dash.cloudflare.com/[account-id]/r2/overview - 选择
Create Bucket-> 设置Bucket Name->Create - 获取 Bucket Name (
STORAGE_BUCKET环境变量) - 设置自定义公开域名 (
STORAGE_PUBLIC_URL环境变量) - 获取 S3 API (
R2_ENDPOINT环境变量) - 获取 API Token:
https://dash.cloudflare.com/profile/api-tokens->Create Token->R2->Read & Write->Create->Copy->Save- Access Key ID (
R2_ACCESS_KEY_ID环境变量) - Secret Access Key (
R2_SECRET_ACCESS_KEY环境变量)
- Access Key ID (
至此,环境变量设置:
STORAGE_TYPE=r2
STORAGE_BUCKET={bucket-name}
STORAGE_PUBLIC_URL={custom-public-domain-url}
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_ENDPOINT=
# R2_PUBLIC_URL=https://public.your-bucket.domain.comVercel Blob
创建 Blog Storage Database
- 进入项目仪表盘:
https://vercel.com/[team-id]/[project-id] - 选择
StorageTab ->Create Database->Create NewTab -> 选择Blob->Continue-> 设置Store Name->Create - 链接项目:自动创建环境变量
BLOB_READ_WRITE_TOKEN,环境变量后缀固定为_READ_WRITE_TOKEN, 默认前缀为BLOB(一般无需修改)
获取存储公共 URL
- Open
https://vercel.com/[team-id]/[project-id]/stores/blob/store_[store-id]/projects - Click
SettingsTab -> ViewStore Information-> Copy Base URL, label isThis is the Base URL for all blobs in this store
至此, Vercel Blob 存储配置完成
部署环境变量设置:
STORAGE_TYPE=vercel
STORAGE_BUCKET=blog # 可选,Vercel Blob 不需要指定 bucket
STORAGE_PUBLIC_URL=<Public_Base_URL>
BLOB_READ_WRITE_TOKEN=<BLOB_READ_WRITE_TOKEN>Supabase Storage
创建 Bucket
- Click
Storage-> ClickNew bucket-> InputName of bucket& CheckPublic bucket-> ClickCreate
获取 Supabase URL 和 Service Role Key
- SUPABASE_URL:
Project Settings->General->Project ID-> Copy ->https://[project-id].supabase.co - SUPABASE_SERVICE_ROLE_KEY:
Project Settings->API Keys->Legacy API Keys->service_rolesecret -> Reveal -> Copy
至此, Supabase Storage 存储配置完成
部署环境变量设置:
STORAGE_TYPE=supabase
STORAGE_BUCKET={name-of-bucket}
SUPABASE_URL={SUPABASE_URL}
SUPABASE_SERVICE_ROLE_KEY={SUPABASE_SERVICE_ROLE_KEY}