نظرة عامة على الهندسة المعمارية
هندسة النظام
┌──────────────────────────────────────────────────────────────────┐
│ طبقة واجهة المستخدم │
│ Web UI (React) · S3 Clients (rclone, AWS CLI) · WebDAV │
└──────────────┬──────────────────────┬────────────────┬───────────┘
│ │ │
┌──────▼──────┐ ┌──────▼──────┐ ┌─────▼──────┐
│ REST API │ │ S3 API │ │ WebDAV │
│ :5212 │ │ :5213 │ │ :5214 │
└──────┬──────┘ └──────┬──────┘ └─────┬──────┘
│ │ │
┌──────▼──────────────────────▼────────────────▼──────┐
│ Gin Router │
│ Middleware: CORS → Auth → Rate Limit │
└──────────┬───────────────────────────────────────────┘
│
┌──────────▼───────────────────────────────────────────┐
│ طبقة الخدمات │
│ Auth · File Management · Space Management · Shares │
└──────────┬───────────────────────────────────────────┘
│
┌──────────▼───────────────────────────────────────────┐
│ تجريد التخزين │
│ نظام ملفات في الذاكرة (Inode + Block-based) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ RAM │ │ VRAM │ │ Swap/Persist │ │
│ │ Driver │ │ Driver │ │ Layer (optional) │ │
│ └────┬─────┘ └────┬─────┘ └──────────────────────┘ │
└───────┼─────────────┼─────────────────────────────────┘
│ │
┌───────▼─────────────▼─────────────────────────────────┐
│ طبقة إدارة الأجهزة │
│ mmap / VirtualAlloc / CUDA / NVML │
└───────────────────────────────────────────────────────┘خريطة المنافذ
| المنفذ | الخدمة | الوصف |
|---|---|---|
| 5212 | REST API + واجهة الويب | المنفذ الرئيسي لواجهة HTTP والواجهة الأمامية |
| 5213 | S3 API | بروتوكول متوافق مع AWS S3 |
| 5214 | WebDAV | بروتوكول WebDAV |
رصة التقنيات
| الطبقة | التقنية |
|---|---|
| الواجهة الخلفية | Go 1.22+, Gin, ent, golang.org/x/net/webdav |
| الواجهة الأمامية | React 18, TypeScript, Ant Design 5, Zustand, Vite |
| قاعدة البيانات | SQLite / PostgreSQL (بيانات وصفية فقط) |
| RAM | mmap (Linux/macOS) / VirtualAlloc (Windows) |
| VRAM | CUDA + NVML (نموذج أولي، جاهز للتكامل) |