Skip to content

sosohime/local-oss-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

local-oss-rs

一个基于 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

API使用说明

文件上传

基础上传

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:配置文件解析

LICENSE

MIT

注意事项

  • 确保配置文件中的存储目录具有正确的读写权限
  • 大文件上传可能需要调整服务器配置
  • 解压功能仅支持指定的压缩格式

About

Object storage server on local

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages