AI 原生 BaaS 平台 Supabase 版
API 类型 | 使用者 | 作用 | 方式及示例 |
Admin API(HTTP 接口) | 应用(APP)开发者 | 管理 bucket、配置参数等 |
# curl查询buckets列表的示例 curl -X POST $SUPABASE_BASE_URL/storage/v1/bucket \ -H "apikey: ${SERVICE_ROLE_KEY}" \ -H "Authorization: Bearer ${SERVICE_ROLE_KEY}" -H 'Content-Type: application/json' \ -d '{ "name": "my-bucket", "public": false, "file_size_limit": "100MB", "allowed_mime_types": ["image/png", "image/jpeg"] }'
# curl配置参数的示例 # 参数fileSizeLimit表示单文件大小(单位byte) # 参数totalFileSizeLimit表示所有文件总大小(单位byte) curl -X PATCH $SUPABASE_BASE_URL/storage/v1/config \ -H "apikey: ${SERVICE_ROLE_KEY}" \ -H 'Authorization: Bearer ${SERVICE_ROLE_KEY}' \ -H 'Content-Type: application/json' \ -d '{ "fileSizeLimit": 52428800, "totalFileSizeLimit": 5368709120 }' |
Admin API (Supabase Client SDK) | 应用(APP)开发者 | 管理 bucket、配置参数等 | 除直接使用 HTTP 接口外,更建议通过 Supabase Client SDK 结合 SERVICE_ROLE_KEY 来实现。 import { createClient } from '@supabase/supabase-js' const supabase = createClient( "<SUPABASE_BASE_URL>", "<SUPABASE_SERVICE_ROLE_KEY>") // 创建 Bucket(无 try-catch,直接判断 error) async function createBucket() { const { data, error } = await supabase .storage .createBucket('new-bucket', { public: true }) if (error) { console.error('failed: ', error.message) return } console.log('success: ', data) return data } |
Client API(Supabase Client SDK) | 应用(APP)使用者 | 在 APP 前端中访问 Storage | 上传/下载 object 等。 import { createClient } from '@supabase/supabase-js' const supabase = createClient( "<SUPABASE_BASE_URL>", "<SUPABASE_ANON_KEY>") // 下载并转换图片实例 async function downloadAndTransformImage() { const { data, error } = await supabase .storage .from('pic-bucket') .download('pic.bmp', { transform: { width: 300, height: 300, quality: 80, format: 'jpg' } }) if (error) { console.error('failed: ', err.message) } else { console.log('success: ', data) } } |