Chuyển đến nội dung

Nâng cấp 1.1 → 1.2

Bản nâng cấp này thêm direct lifecycle cho uploaded-file mà không xóa cột hay service method legacy.

Migration cơ sở dữ liệu

Đăng ký UploadedFileDirectLifecycle1785744000000 từ @sdcorejs/nestjs/features trong TypeORM datasource của consumer và chạy lệnh migration thông thường trước khi deploy code mới.

Migration thêm metadata chính xác, staging/final lifecycle, visibility/status, temporary expiry cố định, bằng chứng checksum/ETag và ba index cleanup/lookup. Row hiện có được backfill bảo thủ thành private, ready, permanent attachment. sizeBytes, contentType, completedAtexpiredAt giữ null vì không thể khôi phục đáng tin cậy cho dữ liệu legacy.

Cấu hình và storage

  • Thêm @aws-sdk/s3-request-presigner ở nơi cài explicit optional dependency cho S3.
  • Với Spaces, cấu hình endpoint, region và addressing style tách biệt cdnBaseUrl.
  • Generic frontend initiate luôn private. Chỉ bật allowPublicUploads: true cho use case internal public đã review, rồi chọn publicAccessMode: 'object-acl' hoặc 'external'.
  • Thêm origin CORS cho đúng browser origin, PUT, content type, signed metadata và checksum header tùy chọn.
  • Import ScheduleModule.forRoot() và xác minh cả cron pending lẫn temporary.

publicFiles: true legacy vẫn chuẩn hóa permanent upload thành public, nhưng migration không giả định row cũ là public và temporary không bao giờ được chuyển public. Chỉ backfill public cho danh sách ID legacy đã review.

Tương thích và rollout

Multipart upload/download endpoint, Buffer service overload, findById, key/CDN reference method và cột legacy vẫn còn. Direct flow thêm route initiate, complete, detail, delete và local content. Serializer HTTP mới loại storage key và reference URL đã persist.

Deploy theo thứ tự: database migration, bucket/CORS/CDN policy, application code, cleanup worker, sau đó mới bật internal public. Test private direct upload và boundary temporary trước rollout.

Migration down() xóa dữ liệu lifecycle. Rollback application/worker và drain pending upload trước khi dùng. Xem docs/migration-1.2-uploaded-file-direct-upload.md trong package để có query verify và cảnh báo rollback đầy đủ.

Phát hành theo giấy phép MIT.