Giao diện
@digiforce-nc/plugin-file-storage-s3-pro
Plugin lưu trữ file S3 nâng cao — multipart upload, signed URLs, presigned POST cho upload trực tiếp từ browser, hỗ trợ file lớn và S3-compatible storage.
Plugin này làm gì?
Phiên bản nâng cao của S3 storage. Thay vì upload file qua server (tốn bandwidth), plugin hỗ trợ presigned POST — browser upload thẳng lên S3. Với file lớn, multipart upload chia file thành chunks và upload song song. Mọi URL download đều qua signed URL có thời hạn để bảo mật.
Ba nhiệm vụ chính
| # | Nhiệm vụ | Chi tiết |
|---|---|---|
| 1 | Direct upload | Presigned POST — browser upload thẳng lên S3, không qua server |
| 2 | Multipart upload | Chia file lớn thành chunks, upload song song, resume khi lỗi |
| 3 | Signed URLs | URL download có thời hạn, bảo mật truy cập file |
Kiến trúc
Luồng upload file lớn (multipart)
Tính năng chi tiết
| Tính năng | Mô tả |
|---|---|
| Presigned POST | Browser upload trực tiếp — giảm tải server, tăng tốc upload |
| Multipart upload | File lớn chia chunks (mặc định 5MB/chunk), upload song song |
| Signed URLs | URL download có thời hạn (cấu hình expiry) |
| S3-compatible | Hỗ trợ AWS S3, MinIO, Cloudflare R2, Backblaze B2 |
| CDN integration | Tích hợp CloudFront hoặc CDN khác cho download nhanh |
| Lifecycle | Tự xóa file tạm / file cũ theo policy |
| Content-Type | Tự nhận diện MIME type khi upload |
Cấu hình
| Tham số | Mô tả |
|---|---|
accessKeyId | AWS Access Key (hoặc tương đương S3-compatible) |
secretAccessKey | AWS Secret Key |
region | AWS Region (VD: ap-southeast-1) |
bucket | Tên bucket mặc định |
endpoint | Custom endpoint cho S3-compatible (VD: MinIO URL) |
cdnDomain | CDN domain (tùy chọn — CloudFront, Cloudflare) |
signedUrlExpiry | Thời hạn signed URL tính bằng giây (mặc định: 3600) |
multipartChunkSize | Kích thước mỗi chunk multipart (mặc định: 5MB) |
Thành phần client
| Thành phần | Mô tả |
|---|---|
S3ProConfig | Trang cấu hình S3 credentials và bucket |
MultipartUploader | Component upload file lớn với progress bar |
FilePreview | Xem trước file qua signed URL |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client UI framework (peer) |
@digiforce-nc/database | Database ORM (peer) |
@aws-sdk/client-s3 | AWS S3 SDK |
@aws-sdk/s3-request-presigner | Tạo signed URL và presigned POST |