news 2026/10/24 21:15:14

Supabase Storage 云存储服务完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Supabase Storage 云存储服务完全指南

Supabase Storage 云存储服务完全指南

【免费下载链接】storageS3 compatible object storage service that stores metadata in Postgres项目地址: https://gitcode.com/gh_mirrors/st/storage

项目概述

Supabase Storage 是一个开源的可扩展、轻量级对象存储服务,专为现代应用开发设计。该项目采用多协议支持架构,将元数据存储在PostgreSQL数据库中,同时支持与S3兼容存储服务集成。

核心特性

  • 多协议支持:兼容HTTP/REST、TUS可恢复上传、S3 API和Iceberg REST Catalog
  • 元数据管理:使用PostgreSQL作为元数据存储后端
  • 权限控制:基于PostgreSQL行级安全策略实现授权规则
  • 高性能设计:极致的轻量级和高性能架构

系统架构解析

Supabase Storage 采用分层架构设计,确保系统的可扩展性和可靠性:

该架构分为三个主要层次:

前端层:包含用户仪表盘和客户端库,提供友好的用户界面和开发者工具。

中间件层:由Kong API网关和Storage API服务器组成,负责请求路由、认证鉴权和业务逻辑处理。

后端存储层:支持多种S3兼容存储服务,如AWS S3和Backblaze B2,实现数据持久化存储。

快速开始

环境准备

确保系统已安装Node.js 14.0或更高版本,然后克隆项目代码:

git clone https://gitcode.com/gh_mirrors/st/storage cd storage

依赖安装与配置

安装项目依赖:

npm install

配置环境变量:

cp .env.sample .env && cp .env.test.sample .env.test

基础设施启动

使用Docker Compose启动本地开发环境:

npm run infra:restart

此命令将启动PostgreSQL数据库和PostgREST服务。

开发服务器启动

运行开发服务器:

npm run dev

服务器将在 http://localhost:5000/ 启动运行。

基础操作示例

创建存储桶

使用以下命令创建名为"avatars"的存储桶:

curl --location --request POST 'http://localhost:5000/bucket' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaWF0IjoxNjEzNTMxOTg1LCJleHAiOjE5MjkxMDc5ODV9.th84OKK0Iz8QchDyXZRrojmKSEZ-OuitQm_5DvLiSIc' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "avatars" }'

查询存储桶列表

获取所有存储桶信息:

curl --location --request GET 'http://localhost:5000/bucket' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaWF0IjoxNjEzNTMxOTg1LCJleHAiOjE5MjkxMDc5ODV9.th84OKK0Iz8QchDyXZRrojmKSEZ-OuitQm_5DvLiSIc'

开发工作流

代码格式化

项目使用Prettier进行代码格式化:

npm run format

代码检查

运行代码质量检查:

npm run lint

测试执行

运行完整的测试套件:

npm test

生成测试覆盖率报告:

npm run test:coverage

高级功能

数据库迁移管理

运行数据库迁移:

npm run migration:run

文档导出

导出项目文档:

npm run docs:export

技术栈说明

Supabase Storage 基于以下核心技术构建:

  • 后端框架:Fastify - 高性能Node.js Web框架
  • 数据库:PostgreSQL - 关系型数据库
  • 对象存储:AWS S3 SDK - 提供S3兼容存储支持
  • 文件上传:TUS协议 - 支持可恢复的文件上传
  • 监控指标:Prometheus客户端 - 收集和暴露应用指标

部署与生产环境

构建生产版本

编译TypeScript代码并构建生产版本:

npm run build

启动生产服务器

运行生产环境服务器:

npm start

项目结构

项目采用模块化设计,主要包含以下核心模块:

  • HTTP层:处理API请求和路由
  • 存储协议:支持S3、TUS、Iceberg等多种协议
  • 内部服务:包含认证、数据库、队列等核心组件
  • 测试套件:完整的单元测试和集成测试

通过这种分层架构和模块化设计,Supabase Storage 提供了一个既灵活又强大的对象存储解决方案,能够满足从简单文件存储到复杂企业级应用的各种需求。

【免费下载链接】storageS3 compatible object storage service that stores metadata in Postgres项目地址: https://gitcode.com/gh_mirrors/st/storage

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 20:50:37

Calibre电子书格式转换完全指南:从零掌握30+格式互转技巧

Calibre电子书格式转换完全指南:从零掌握30格式互转技巧 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/gh_mirrors/ca/calibre 电子书格式转换是数字阅读中经常遇到的需求&am…

作者头像 李华
网站建设 2026/10/24 2:07:30

GitLens终极指南:解锁VS Code中完整的Git可视化开发体验

GitLens终极指南:解锁VS Code中完整的Git可视化开发体验 【免费下载链接】vscode-gitlens 项目地址: https://gitcode.com/gh_mirrors/vsc/vscode-gitlens 还在为VS Code中Git操作不够直观而烦恼吗?GitLens作为最强大的Git增强工具,能…

作者头像 李华
网站建设 2026/10/24 19:35:46

大模型工具的 “京东答案”

随着大模型技术的迅猛发展,AI工具已成为重要的辅助生产力工具和工作伙伴。它能够显著提升工作效率、帮助解决业务痛点,甚至能通过知识延展与智能协同,帮助团队突破传统认知边界。掌握大模型工具的应用能力,正成为现代职场人提升价…

作者头像 李华
网站建设 2026/10/23 21:34:30

好写作AI|“码”出论文:程序员如何用我们优雅生成技术文档?

当你敲下最后一行代码,运行成功,长舒一口气——然后,面对空白的实验报告文档,那口气又生生噎了回去。别慌,你的新“IDE”已就绪。对于程序员来说,写代码是创造,写文档却像是“酷刑”。解释一个精…

作者头像 李华
网站建设 2026/10/21 17:30:28

WAN2.2-Mega-V11技术评测:模块化架构如何重塑AI视频创作生态

WAN2.2-Mega-V11技术评测:模块化架构如何重塑AI视频创作生态 【免费下载链接】WAN2.2-14B-Rapid-AllInOne 项目地址: https://ai.gitcode.com/hf_mirrors/Phr00t/WAN2.2-14B-Rapid-AllInOne 技术架构深度解析 WAN2.2-Mega-V11采用分层模块化设计&#xff0…

作者头像 李华