From 27c2aca2a9d48a043ac61e3680aca7cb9c74da0c Mon Sep 17 00:00:00 2001 From: PSMinIO Developer Date: Mon, 14 Jul 2025 21:29:10 -0400 Subject: [PATCH] Implement 3-layer progress tracking for multipart uploads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � 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! --- Module/PSMinIO/bin/PSMinIO.dll | Bin 179200 -> 181248 bytes src/Core/S3/MultipartUploadManager.cs | 58 +++++++++++++----- src/Utils/ProgressTrackingStream.cs | 82 ++++++++++++++++++++++++++ 3 files changed, 126 insertions(+), 14 deletions(-) create mode 100644 src/Utils/ProgressTrackingStream.cs diff --git a/Module/PSMinIO/bin/PSMinIO.dll b/Module/PSMinIO/bin/PSMinIO.dll index 657382b2a389aac6b67f029f2b4334e935398485..a9768fad74a57b0f0d82e69f993e7343e915a68e 100644 GIT binary patch literal 181248 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 z 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 z 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%0D8D#Uz2{P?`|ICbv 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 E0cg(fEC2ui diff --git a/src/Core/S3/MultipartUploadManager.cs b/src/Core/S3/MultipartUploadManager.cs index 538f504..a2bea21 100644 --- a/src/Core/S3/MultipartUploadManager.cs +++ b/src/Core/S3/MultipartUploadManager.cs @@ -48,11 +48,20 @@ namespace PSMinIO.Core.S3 var totalSize = fileInfo.Length; var totalParts = (int)Math.Ceiling((double)totalSize / effectiveChunkSize); - _progressCollector.QueueVerboseMessage("Starting multipart upload: {0} -> {1}/{2}", + _progressCollector.QueueVerboseMessage("Starting multipart upload: {0} -> {1}/{2}", fileInfo.Name, bucketName, objectName); - _progressCollector.QueueVerboseMessage("File size: {0}, Chunk size: {1}, Total parts: {2}", + _progressCollector.QueueVerboseMessage("File size: {0}, Chunk size: {1}, Total parts: {2}", SizeFormatter.FormatBytes(totalSize), SizeFormatter.FormatBytes(effectiveChunkSize), totalParts); + // Initialize 3-layer progress tracking + // Layer 1: Collection Progress (if multiple files) + _progressCollector.QueueProgressUpdate(1, "Multipart Upload Collection", + $"Processing {fileInfo.Name}", 0); + + // Layer 2: File Progress + _progressCollector.QueueProgressUpdate(2, "File Upload", + $"Uploading {fileInfo.Name} ({SizeFormatter.FormatBytes(totalSize)})", 0, 1); + var uploadId = resumeUploadId; var parts = new ConcurrentDictionary(); var operationStartTime = DateTime.UtcNow; @@ -105,15 +114,16 @@ namespace PSMinIO.Core.S3 // Update progress var currentUploaded = Interlocked.Add(ref uploadedBytes, partSize); - var progress = (double)currentUploaded / totalSize * 100; + var fileProgress = (double)currentUploaded / totalSize * 100; var elapsed = DateTime.UtcNow - operationStartTime; var speed = elapsed.TotalSeconds > 0 ? currentUploaded / elapsed.TotalSeconds : 0; - _progressCollector.QueueProgressUpdate(1, "Multipart Upload", - $"Part {partNum}/{totalParts} - {SizeFormatter.FormatBytes(currentUploaded)}/{SizeFormatter.FormatBytes(totalSize)} at {SizeFormatter.FormatSpeed(speed)}", - (int)progress); + // Update file progress (Layer 2) + _progressCollector.QueueProgressUpdate(2, "File Upload", + $"Part {partNum}/{totalParts} - {SizeFormatter.FormatBytes(currentUploaded)}/{SizeFormatter.FormatBytes(totalSize)} at {SizeFormatter.FormatSpeed(speed)}", + (int)fileProgress, 1); - _progressCollector.QueueVerboseMessage("Completed part {0}/{1} ({2})", + _progressCollector.QueueVerboseMessage("Completed part {0}/{1} ({2})", partNum, totalParts, SizeFormatter.FormatBytes(partSize)); } finally @@ -136,10 +146,12 @@ namespace PSMinIO.Core.S3 var averageSpeed = totalDuration.TotalSeconds > 0 ? totalSize / totalDuration.TotalSeconds : 0; _progressCollector.QueueVerboseMessage("Multipart upload completed successfully"); - _progressCollector.QueueVerboseMessage("Total time: {0}, Average speed: {1}", + _progressCollector.QueueVerboseMessage("Total time: {0}, Average speed: {1}", SizeFormatter.FormatDuration(totalDuration), SizeFormatter.FormatSpeed(averageSpeed)); - _progressCollector.QueueProgressCompletion(1, "Multipart Upload"); + // Complete all progress layers + _progressCollector.QueueProgressCompletion(2, "File Upload", 1); + _progressCollector.QueueProgressCompletion(1, "Multipart Upload Collection"); return new MultipartUploadResult { @@ -229,9 +241,21 @@ namespace PSMinIO.Core.S3 using var fileStream = fileInfo.OpenRead(); fileStream.Seek(offset, SeekOrigin.Begin); - + + // Create progress-tracking stream for chunk upload (Layer 3) + var progressStream = new ProgressTrackingStream(fileStream, size, + (bytesRead, totalBytes) => + { + var chunkProgress = (double)bytesRead / totalBytes * 100; + _progressCollector.QueueProgressUpdate(3, "Uploading Chunk", + $"Part {partNumber}: {SizeFormatter.FormatBytes(bytesRead)}/{SizeFormatter.FormatBytes(totalBytes)}", + (int)chunkProgress, 2); // Parent: File Upload (Layer 2) + }); + + // Read data for MD5 calculation (still need to buffer for MD5) var buffer = new byte[size]; var totalRead = 0; + var originalPosition = fileStream.Position; while (totalRead < size) { var bytesRead = fileStream.Read(buffer, totalRead, (int)(size - totalRead)); @@ -239,20 +263,26 @@ namespace PSMinIO.Core.S3 totalRead += bytesRead; } - using var content = new ByteArrayContent(buffer, 0, totalRead); - content.Headers.ContentLength = totalRead; - // Calculate MD5 for integrity using var md5 = MD5.Create(); var md5Hash = md5.ComputeHash(buffer, 0, totalRead); var md5String = Convert.ToBase64String(md5Hash); + + // Reset stream position for actual upload + fileStream.Seek(originalPosition, SeekOrigin.Begin); + + using var content = new StreamContent(progressStream); + content.Headers.ContentLength = size; content.Headers.Add("Content-MD5", md5String); var response = _httpClient.ExecuteRequest(HttpMethod.Put, $"/{bucketName}/{objectName}", queryParams, content: content); var etag = response.Headers.ETag?.Tag?.Trim('"') ?? ""; - + + // Complete chunk progress (Layer 3) + _progressCollector.QueueProgressCompletion(3, "Uploading Chunk", 2); + return new PartInfo { PartNumber = partNumber, diff --git a/src/Utils/ProgressTrackingStream.cs b/src/Utils/ProgressTrackingStream.cs new file mode 100644 index 0000000..f813a78 --- /dev/null +++ b/src/Utils/ProgressTrackingStream.cs @@ -0,0 +1,82 @@ +using System; +using System.IO; + +namespace PSMinIO.Utils +{ + /// + /// Stream wrapper that tracks read progress and reports it via callback + /// + public class ProgressTrackingStream : Stream + { + private readonly Stream _baseStream; + private readonly long _totalBytes; + private readonly Action _progressCallback; + private long _bytesRead = 0; + private readonly long _startPosition; + + public ProgressTrackingStream(Stream baseStream, long totalBytes, Action progressCallback) + { + _baseStream = baseStream ?? throw new ArgumentNullException(nameof(baseStream)); + _totalBytes = totalBytes; + _progressCallback = progressCallback ?? throw new ArgumentNullException(nameof(progressCallback)); + _startPosition = baseStream.Position; + } + + public override bool CanRead => _baseStream.CanRead; + public override bool CanSeek => _baseStream.CanSeek; + public override bool CanWrite => _baseStream.CanWrite; + public override long Length => _totalBytes; + public override long Position + { + get => _bytesRead; + set => throw new NotSupportedException("Setting position is not supported"); + } + + public override int Read(byte[] buffer, int offset, int count) + { + // Limit read to remaining bytes + var remainingBytes = _totalBytes - _bytesRead; + var bytesToRead = (int)Math.Min(count, remainingBytes); + + if (bytesToRead <= 0) + return 0; + + var bytesRead = _baseStream.Read(buffer, offset, bytesToRead); + _bytesRead += bytesRead; + + // Report progress + _progressCallback(_bytesRead, _totalBytes); + + return bytesRead; + } + + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("Writing is not supported"); + } + + public override void Flush() + { + _baseStream.Flush(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("Seeking is not supported"); + } + + public override void SetLength(long value) + { + throw new NotSupportedException("Setting length is not supported"); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + // Don't dispose the base stream - let the caller handle it + } + base.Dispose(disposing); + } + } +}