You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
使用 Storage
使用 Storage
复制全文
下载 pdf
使用 Storage
本文介绍不同角色使用 Storage 功能模块的方式与方法。​
背景信息​
Supabase 控制台的功能模块面向应用开发流程中的不同角色,提供了不同的使用方法。​
角色​
作为 BaaS 服务,Supabase 控制台的功能模块可以向应用开发流程中的不同角色:应用(APP)开发者和应用(APP)使用者提供服务。​
方法​
Supabase 控制台的 Storage 功能可以在控制台上进行配置和使用,也可通过两类 API 提供服务。​
  • Admin API:指 APP 开发者配置 Supabase 的管理 API,需要 SERVICE_ROLE_KEY。​
  • Client API:是指 APP 使用者访问 Supabase 的 API,通常是在登录后调用。​
调用 Admin API 和 Client API 的方式及示例如下。​
​
API 类型​
使用者​
作用​
方式及示例​
Admin API(HTTP 接口)​
​
应用(APP)开发者​
​
管理 bucket、配置参数等​
​
  1. 创建 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"]​
}'​
​
  1. 修改配置​
​
# 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)​
}​
}​
​
​
​
最近更新时间:2026.07.17 17:32:17
这个页面对您有帮助吗?
有用
有用
无用
无用