PSMinIO Developer
|
f420effc84
|
Implement comprehensive zip archive functionality with progress tracking
✅ ZipArchiveBuilder - Core compression engine:
• Built on System.IO.Compression (.NET Standard 2.0 built-in)
• Real-time progress tracking with events
• Start/end time tracking with duration calculation
• Size metrics (compressed/uncompressed) and compression ratios
• FileSystemInfo support (FileInfo, DirectoryInfo)
• Append support via ZipArchiveMode.Update
• Compression efficiency calculations
✅ ZipBuilder - PowerShell integration layer:
• ThreadSafeProgressCollector integration
• Multi-layer progress tracking (Zip + File levels)
• Verbose logging with comprehensive metrics
• ZipCreationResult object for PowerShell output
• Event-driven progress reporting
✅ New-MinIOZipArchive cmdlet - Well-structured PowerShell interface:
• Files parameter set: FileInfo[] support for multiple files
• Directory parameter set: DirectoryInfo with recursive options
• File filtering: InclusionFilter/ExclusionFilter ScriptBlocks
• Compression levels: Optimal, Fastest, NoCompression
• Archive modes: Create, Update (for appending)
• BasePath parameter for custom entry name control
• Force parameter for overwriting existing archives
• PassThru parameter for detailed result objects
✅ Advanced features:
• Progress tracking: Real-time speed and ETA calculations
• Metrics: Compression ratio, space saved, processing time
• File filtering: ScriptBlock-based inclusion/exclusion
• Path handling: Cross-platform compatibility
• Error handling: Comprehensive validation and recovery
• Memory efficiency: 80KB buffer for optimal throughput
✅ Integration benefits:
• No external dependencies (uses built-in .NET compression)
• Thread-safe operations compatible with PSMinIO architecture
• Consistent with existing progress tracking patterns
• Minimal footprint aligning with project preferences
• Enterprise-grade functionality with comprehensive metrics
Architecture: Built on System.IO.Compression with custom progress tracking,
providing superior zip functionality with PowerShell-native integration.
|
2025-07-11 21:00:14 -04:00 |
|