Simple, Personal Oriented Object Storage. Based on Nodejs.
简单的,面向个人用户的对象存储服务。基于Nodejs开发。
考虑到自己开发一些小项目的时候,对于一些文件上传的功能,由于数据库设计或是技术选型上的因素, 相关代码跟特定项目耦合密切,造成其他项目对这部分的代码无法复用,再次开发此类功能时需要进行重复开发,造成时间精力成本的浪费。 并且上传文件的目录没有统一的管理,不仅造成服务器文件资源的混乱,在应用迁移的时候也较为复杂。
而我们很多时候所关注的只是项目本身的功能,文件上传是很微小的地方但又不可或缺,所以将这一部分功能抽离,通过http接口提供独立的服务,即spoos,简单的面向个人用户的对象存储服务。
特性:
- 多应用创建
- 资源统一管理
- 多种访问方式
- 可零后端开发
技术选型:
- Server: Node + Koa + MySQL
- Client: React
git clone https://github.com/xuboxun/spoos.git
cd spoos
npm install
# 构建客户端
cd client
npm install
npm run build
# 创建数据库
mysql> create database spoos;
mysql> use spoos;
# 导入数据库
mysql> source [path to spoos.sql]
参数 | 说明 | 默认值 |
---|---|---|
dbHost | 数据库主机地址 | 127.0.0.1 |
dbPort | 数据库端口 | 3306 |
dbName | 数据库名 | spoos |
dbUsername | 数据库用户名 | 无,必填 |
dbPassword | 用户名密码 | 无 |
appPort | 应用端口 | 9981 |
storeDir | 文件存储目录 | 无,必填 |
logDir | 日志存储目录 | 无,必填 |
maxFileSize | 上传最大文件大小 | 10M |
pluginNginx | 是否使用nginx插件 | true |
domain | 使用nginx的域名 | 无 |
# 初次使用请安装
npm run install
# 启动运行
npm run start
# 停止运行
npm run stop