QREcrypt文件服务器

Keywords: #技术 #Golang #QREcrypt
Table of Contents

项目简介

这是一个基于 Go 语言和 Gin 框架开发的文件服务器,提供安全的文件上传和下载功能,使用 JWT(JSON Web Token)进行身份验证。它可与 QREcrypt 配套完成其云端同步功能。

功能特性

  • 基于 JWT 的用户认证
  • 安全的文件上传功能
  • 文件下载支持
  • RESTful API 设计
  • 命令行配置支持

技术栈

  • Go 1. x
  • Gin Web 框架
  • JWT v 5 认证
  • 文件系统操作

快速开始

安装

  1. 克隆项目
git clone https://github.com/Pi3-l22/QREcrypt_server
cd QREcrypt_server
  1. 安装依赖
go mod tidy
  1. 运行
go run . -username QREcrypt的用户名 -password QREcrypt的主密钥 -port 运行端口

或者可以直接下载并运行编译后的可执行文件

  1. QREcryptServer-windows-amd64.exe
  2. QREcryptServer-linux-amd64
./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/ # 文件上传目录