Bỏ qua, đến nội dung

@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
1Direct uploadPresigned POST — browser upload thẳng lên S3, không qua server
2Multipart uploadChia file lớn thành chunks, upload song song, resume khi lỗi
3Signed URLsURL 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ăngMô tả
Presigned POSTBrowser upload trực tiếp — giảm tải server, tăng tốc upload
Multipart uploadFile lớn chia chunks (mặc định 5MB/chunk), upload song song
Signed URLsURL download có thời hạn (cấu hình expiry)
S3-compatibleHỗ trợ AWS S3, MinIO, Cloudflare R2, Backblaze B2
CDN integrationTích hợp CloudFront hoặc CDN khác cho download nhanh
LifecycleTự xóa file tạm / file cũ theo policy
Content-TypeTự nhận diện MIME type khi upload

Cấu hình

Tham sốMô tả
accessKeyIdAWS Access Key (hoặc tương đương S3-compatible)
secretAccessKeyAWS Secret Key
regionAWS Region (VD: ap-southeast-1)
bucketTên bucket mặc định
endpointCustom endpoint cho S3-compatible (VD: MinIO URL)
cdnDomainCDN domain (tùy chọn — CloudFront, Cloudflare)
signedUrlExpiryThời hạn signed URL tính bằng giây (mặc định: 3600)
multipartChunkSizeKích thước mỗi chunk multipart (mặc định: 5MB)

Thành phần client

Thành phầnMô tả
S3ProConfigTrang cấu hình S3 credentials và bucket
MultipartUploaderComponent upload file lớn với progress bar
FilePreviewXem trước file qua signed URL

Dependencies

PackageVai trò
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient UI framework (peer)
@digiforce-nc/databaseDatabase ORM (peer)
@aws-sdk/client-s3AWS S3 SDK
@aws-sdk/s3-request-presignerTạo signed URL và presigned POST

Mục lục chi tiết