Đặc tả Kỹ thuật: Module Drive
Tài liệu này chi tiết về kiến trúc kỹ thuật, stack công nghệ và các mẫu tích hợp cho module Drive.
v1.0 — Đã phê duyệtNền tảng: Shell VENI-AIStack: Bun/Ignis/Hono
1. Kiến trúc Cấp cao
Module Drive được xây dựng như một Hệ thống Tự vận hành (SCS) với một lớp trừu tượng lưu trữ chuyên dụng.
Sơ đồ Thành phần
2. Stack Công nghệ
Backend (API)
- Runtime: Bun
- Framework: Ignis Framework
- Router: Hono
- ORM: Drizzle ORM
- Lưu trữ: PostgreSQL + S3-compatible backend (MinIO / AWS S3)
Frontend (UI)
- Thư viện: React 18
- Công cụ Build: Vite
- Bộ UI: ARDOR UI Kit
- Tính năng: Trình tải lên tệp kéo-thả với chunked streaming (dự kiến).
3. Các Mẫu Lưu trữ
3.1 Luồng Tải lên
- Client gửi tệp đến
POST /api/files. - API stream trực tiếp tệp đến S3 trong khi tạo ra một
storagePathduy nhất. - API ghi lại siêu dữ liệu (tên, kích thước, kiểu MIME) vào bảng
files. - Trả về ID của tệp cho client.
3.2 Luồng Tải xuống
- Client yêu cầu
GET /api/files/:id/download. - API xác minh quyền truy cập (RBAC + Quyền sở hữu).
- API tạo ra một URL có chữ ký (Presigned URL) từ S3 (hết hạn trong 5 phút).
- Chuyển hướng client đến URL có chữ ký để tải xuống trực tiếp và an toàn từ S3.
3.3 Cô lập Đa thuê bao
Việc cô lập được thực thi bởi:
- Cơ sở dữ liệu: Mọi hàng trong bảng
filesvàfoldersđều cóorg_id. - Lưu trữ: Đường dẫn S3 được bắt đầu bằng ID tổ chức:
s3://bucket/{orgId}/{fileId}.
4. Chi tiết Tích hợp
4.1 Xác thực Shell
- Drive trích xuất
organizationIdvàuserIdtừ Platform JWT. - Việc ủy quyền được kiểm tra dựa trên RBAC của Shell:
drive:read,drive:write,drive:delete.
4.2 Sử dụng Chéo module
- HRM: Sử dụng driver S3 của Drive để lưu trữ ảnh hồ sơ trong một bucket nội bộ
avatars/. - Documents: Xuất các báo cáo PDF hoàn thành trực tiếp vào thư mục gốc Drive của tổ chức.
Liên kết liên quan