QREcrypt文件服务器
Table of Contents
项目简介
这是一个基于 Go 语言和 Gin 框架开发的文件服务器,提供安全的文件上传和下载功能,使用 JWT(JSON Web Token)进行身份验证。它可与 QREcrypt 配套完成其云端同步功能。
功能特性
- 基于 JWT 的用户认证
- 安全的文件上传功能
- 文件下载支持
- RESTful API 设计
- 命令行配置支持
技术栈
- Go 1. x
- Gin Web 框架
- JWT v 5 认证
- 文件系统操作
快速开始
安装
- 克隆项目
git clone https://github.com/Pi3-l22/QREcrypt_server
cd QREcrypt_server
- 安装依赖
go mod tidy
- 运行
go run . -username QREcrypt的用户名 -password QREcrypt的主密钥 -port 运行端口
或者可以直接下载并运行编译后的可执行文件
./QREcryptServer -username QREcrypt的用户名 -password QREcrypt的主密钥 -port 运行端口
请求示例
鉴权
POST /login
Content-Type: application/json
请求体:
{
"username": "admin",
"password": "admin"
}
成功响应:
{
"token": "eyJhbGciOiJIUzI1NiIs..."
}
上传
POST /upload
Authorization: Bearer <your-token>
Content-Type: multipart/form-data
表单字段:
file: 要上传的文件
成功响应:
{
"message": "文件上传成功",
"filename": "example.pdf"
}
下载
GET /download/:filename
Authorization: Bearer <your-token>
响应:文件内容(二进制流)
curl -X POST http://localhost:51122/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}'
curl -X POST http://localhost:51122/upload \
-H "Authorization: Bearer <your-token>" \
-F "file=@/path/to/your/file.pdf"
curl -X GET http://localhost:51122/download/file.pdf \
-H "Authorization: Bearer <your-token>" \
--output downloaded_file.pdf
项目结构
.
├── main.go # 主程序入口
├── handlers.go # 请求处理器
├── middleware.go # JWT中间件
├── file_handlers.go # 文件处理逻辑
├── go.mod # Go模块文件
├── go.sum # 依赖版本锁定文件
└── uploads/ # 文件上传目录