Implement 3-layer progress tracking for multipart uploads

� 3-LAYER PROGRESS TRACKING:

 ENHANCED PROGRESS VISIBILITY:
  • Layer 1: Collection Progress - Overall multipart upload operation
  • Layer 2: File Progress - Current file being uploaded with parts
  • Layer 3: Chunk Progress - Individual chunk upload with streaming

� STREAMING IMPLEMENTATION:
  • Created ProgressTrackingStream for real-time chunk upload progress
  • Replaced ByteArrayContent with StreamContent for better memory usage
  • Maintains MD5 calculation for data integrity
  • Progress updates during actual data transfer

� PROGRESS HIERARCHY:
  • Collection Progress (ID: 1) - 'Multipart Upload Collection'
  • File Progress (ID: 2, Parent: 1) - 'File Upload' with speed/ETA
  • Chunk Progress (ID: 3, Parent: 2) - 'Uploading Chunk' with bytes transferred

 TECHNICAL IMPROVEMENTS:
  • Real-time progress during HTTP upload (not just after completion)
  • Proper parent-child progress relationship
  • Memory-efficient streaming approach
  • Maintains existing MD5 integrity checking
  • Compatible with parallel chunk uploads

� USER EXPERIENCE:
  • See overall multipart upload progress
  • Track current file upload with speed metrics
  • Watch individual chunks upload in real-time
  • Better visibility into long-running operations

Now multipart uploads show comprehensive 3-layer progress tracking!
This commit is contained in:
PSMinIO Developer
2025-07-14 21:29:10 -04:00
parent 9e55bab583
commit 27c2aca2a9
3 changed files with 126 additions and 14 deletions
Binary file not shown.