# panpan
**Repository Path**: hacker__007/panpan
## Basic Information
- **Project Name**: panpan
- **Description**: No description available
- **Primary Language**: Go
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-15
- **Last Updated**: 2025-04-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📦 PanPan Cloud - 微服务网盘系统
## 🚀 项目简介
> PanPan Cloud 是一个支持多存储后端的分布式网盘系统,提供文件存储、秒传、分片上传 / 下载、异步任务处理等核心功能。支持本地磁盘、腾讯云 COS、Minio 集群三种存储方式,通过批处理队列(Kafka)实现数据库操作的异步化处理,保障高并发场景下的系统稳定性。
## 🌟 核心功能特性
🔥 文件存储(三模支持)
✅ 多存储后端:
* 本地磁盘(服务器文件系统)
* 腾讯云 COS(对象存储)
* Minio 集群(私有云对象存储)
✅ 上传能力:
* 🧩 分片上传(支持断点续传)
* ✨ 秒传(基于 SHA-1 指纹快速校验)
* 📏 自定义分片大小(开发环境 100MB,可调)
✅ 下载能力:
* ⚡ 分块并行下载(Goroutine 池并发控制)
* 🛡️ 文件完整性校验(SHA-1 哈希比对)
* 🚀 流式传输(零拷贝优化)
## 🔄 关键流程
### 1. 分片上传流程:
```mermaid
sequenceDiagram
客户端->>API: 初始化分片(SHA-1, 大小)
API->>存储层: 生成UploadID(Redis)
API-->>客户端: 返回UploadID, 分片信息
客户端->>API: 分片上传(含Index)
API->>存储层: 校验分片完整性
客户端->>API: 完成上传(合并请求)
API->>存储层: 合并分片+SHA-1校验
API->>批处理: 记录存储元数据(Kafka)
```
### 2. 批处理流程
```mermaid
graph LR
业务逻辑 -->|数据库操作| 环形缓冲区
环形缓冲区 -->|阈值/时间触发| Kafka生产者
Kafka -->|消费者组| 数据库Worker
数据库Worker -->|异步写入| MySQL/PostgreSQL
```
## 🛠️ 技术栈
Golang、Go-Zero、gRPC、MySQL、Redis、etcd、Docker、Kafka、Jaeger、MinIO、COS
## 📥 安装与部署
> 依据docker-compose文件
## 📌 todo
1. 用户文件分享、连接分享
2. 文件删除、更改
3. 系统监控系统,微服务监控
4. 限速功能
5. 。。。