一个基于 Rust 实现的本地对象存储服务器,提供简单的文件上传和管理功能。
- 文件上传:支持单文件上传
- 路径管理:支持指定上传路径
- 压缩包处理:支持自动解压(zip、tar、tar.gz)
- 安全性:路径检查和清理
- 高性能:异步处理,支持大文件上传
git clone https://github.com/sosohime/local-oss-rs.git
cd local-oss-rs
cargo build --release
修改config.toml
配置文件:
storage_dir = "./storage" # 存储根目录
[server]
host = "127.0.0.1"
port = 8080
配置验证token
# ~/.bash_profile
# add
OSS_RS_UPLOAD_TOKEN="your_token"
# source ~/.bash_profile
cargo run --release
基础上传
curl -X POST http://localhost:8080/upload \
-F "file=@/path/to/your/file.txt" \
-F "token=your_token"
设置上传目录上传
curl -X POST http://localhost:8080/upload \
-F "file=@/path/to/your/file.txt" \
-F "path=custom/path" \
-F "token=your_token"
上传并解压缩
curl -X POST http://localhost:8080/upload \
-F "file=@/path/to/your/archive.zip" \
-F "should_unzip=true" \
-F "token=your_token"
src/
├── main.rs # 程序入口
├── config.rs # 配置管理
├── error.rs # 错误处理
└── storage.rs # 存储实现
- Rust 1.56.0 或更高版本
- 依赖项:
- actix-web:Web 框架
- actix-multipart:文件上传处理
- zip:ZIP 文件处理
- tar:TAR 文件处理
- flate2:压缩文件处理
- serde:序列化支持
- toml:配置文件解析
MIT
- 确保配置文件中的存储目录具有正确的读写权限
- 大文件上传可能需要调整服务器配置
- 解压功能仅支持指定的压缩格式