如何使用curl上传文件至Supabase Storage?
使用纯HTTP(curl)上传文件到Supabase Storage
我注意到官方客户端库都有详细的Supabase Storage上传示例,但纯HTTP方式(比如curl)的完整指南确实缺失,尤其是API文档里没明确说明基础URL的构成,这里给你补全完整的步骤和示例:
核心信息:API基础URL
Supabase Storage API的基础URL格式为:
https://<你的项目标识>.supabase.co/storage/v1
其中<你的项目标识>可以在Supabase控制台的「设置」→「API」页面找到(对应页面里「Project URL」的前缀部分,比如abc123.supabase.co里的abc123)。
完整curl上传示例
以下是直接用curl上传文件的命令模板,替换占位符即可使用:
curl -X POST "https://<你的项目标识>.supabase.co/storage/v1/object/<存储桶名称>/<目标文件路径>" \ -H "Authorization: Bearer <你的API密钥>" \ -H "Content-Type: <文件MIME类型>" \ -F "file=@/本地文件路径"
参数说明
<存储桶名称>:你在Supabase Storage中创建的桶名<目标文件路径>:文件上传后在桶内的存储路径(比如photos/profile.jpg,直接放根目录就填文件名)<你的API密钥>:可选两种密钥:- 匿名密钥(anon key):适合公开场景,权限受桶的访问策略限制
- 服务角色密钥(service role key):拥有全权限,仅限后端使用,切勿暴露给前端
<文件MIME类型>:对应文件的类型,比如image/png、application/pdf/本地文件路径:本地要上传的文件的绝对或相对路径
注意事项
- 确保存储桶的访问策略允许上传操作:如果用匿名密钥上传,需要在Supabase控制台给桶配置允许匿名写入的策略
- 大文件上传可考虑分块上传,对应API的
/object/upload端点,具体逻辑可参考官方API文档的分块上传规则
内容的提问来源于stack exchange,提问作者tanius
相关产品推荐
相关产品推荐

