Commit Graph

8 Commits

Author SHA1 Message Date
PSMinIO Developer ab7c2bbde2 Fix test script parameter names to match actual cmdlet implementations
� PARAMETER NAME FIXES:

 CORRECTED CMDLET PARAMETERS:
  • New-MinIOObjectMultipart: -Files → -FilePath
  • Get-MinIOObjectContent: -ObjectKey → -ObjectName, -FilePath → -LocalPath
  • Get-MinIOObjectContentMultipart: -ObjectKey → -ObjectName, -FilePath → -DestinationPath
  • Get-MinIOPresignedUrl: -ObjectKey → -ObjectName

� UPDATED BOTH TEST SCRIPTS:
  • Test-PSMinIOIndividual.ps1 - Manual testing commands
  • Test-PSMinIOComprehensive.ps1 - Automated test suite
  • Fixed all parameter mismatches based on actual cmdlet implementations

� PARAMETER MAPPING:
  • ObjectKey/Key → ObjectName (consistent across all cmdlets)
  • Files → FilePath (for multipart upload)
  • FilePath → LocalPath (for single download)
  • FilePath → DestinationPath (for multipart download)

Now test scripts use correct parameter names matching the actual PSMinIO cmdlet implementations!
2025-07-14 17:28:36 -04:00
PSMinIO Developer b1adfa6328 Add comprehensive PSMinIO test scripts
 COMPREHENSIVE TEST SUITE:

� TEST SCRIPTS CREATED:
  • Test-PSMinIOComprehensive.ps1 - Automated full test suite
  • Test-PSMinIOIndividual.ps1 - Individual commands for manual testing
  • Both scripts use proper PowerShell practices (no Write-Host)
  • Configured for Grace Solution S3 instance testing

� TEST COVERAGE:
  • Connection establishment and authentication
  • Bucket operations (list, create, exists check)
  • Single file upload/download operations
  • Multipart upload/download operations
  • Object listing and metadata retrieval
  • Presigned URL generation
  • File integrity verification
  • Comprehensive error handling

� TEST FEATURES:
  • Creates test files of varying sizes (small, medium, large)
  • Tests both single-part and multipart operations
  • Verifies downloaded file integrity
  • Provides detailed test results and metrics
  • Includes cleanup instructions
  • Uses Write-Verbose and Write-Output (no Write-Host)

� USAGE:
  Comprehensive: .\scripts\Test-PSMinIOComprehensive.ps1 -Verbose
  Individual: Copy commands from Test-PSMinIOIndividual.ps1

Ready for comprehensive PSMinIO functionality testing!
2025-07-14 17:21:43 -04:00
PSMinIO Developer e1da6e92af Add Get-MinIOZipArchive cmdlet and enhance New-MinIOZipArchive with FileInfo parameters
 Get-MinIOZipArchive cmdlet - Comprehensive zip reading:
  • FileInfo parameter with proper disposal handling using OpenRead
  • ZipArchiveInfo result with comprehensive metrics
  • ZipEntryInfo array for detailed entry information
  • IncludeEntries parameter for detailed file listings
  • ValidateIntegrity parameter for archive validation
  • Filter parameter for entry name pattern matching
  • Proper exception handling and verbose logging
  • Always returns objects for pipeline compatibility

 Enhanced New-MinIOZipArchive cmdlet:
  • FileInfo DestinationPath parameter (was string)
  • Removed PassThru parameter - always returns objects
  • Consistent parameter naming with aliases
  • Improved error handling and validation
  • Better integration with PowerShell pipeline

 ZipArchiveInfo and ZipEntryInfo classes:
  • Comprehensive metrics: size, compression ratio, efficiency
  • Time tracking: creation, modification, validation duration
  • Entry details: full name, size, compression stats
  • Directory detection and space saved calculations
  • .NET Standard 2.0 compatibility (removed Crc32)

 Enhanced test script:
  • FileInfo parameter usage examples
  • Get-MinIOZipArchive functionality testing
  • Archive information reading and validation
  • Detailed entry inspection and filtering
  • Integrity validation demonstrations

 Architecture improvements:
  • Consistent FileInfo usage across zip operations
  • Proper disposal handling with using statements
  • Thread-safe operations with comprehensive error handling
  • Pipeline-friendly object returns
  • Enhanced verbose logging and progress tracking

Features: Create zips from FileInfo/DirectoryInfo, read archive info with validation,
detailed entry inspection, integrity checking, and comprehensive metrics.
2025-07-11 21:16:21 -04:00
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
PSMinIO Developer 140257d469 Implement centralized enhanced error handling
- Created MinIOErrorHandler utility with comprehensive error details
- Captures Message, ExceptionType, InnerException, StackTrace, Timestamp, Machine, ProcessId
- Provides detailed logging with Write-Warning for debugging
- Integrated with MinIOBaseCmdlet ExecuteOperation methods
- Fixed parameter name consistency (BucketName across all cmdlets)
- Supports both terminating and non-terminating error handling
- Automatic error category determination based on exception type

This addresses the requirement for centralized C# error handling that provides
detailed debugging information without requiring manual debug code additions.
2025-07-11 14:53:41 -04:00
PSMinIO Developer 396290e0e8 Add comprehensive final test script
- Tests all core functionality
- Verifies connection, bucket operations, file transfers
- Includes performance metrics validation
- Uses proper PowerShell output practices (no Write-Host)
2025-07-11 14:38:55 -04:00
PSMinIO Developer b237838ff1 Complete rebuild: Custom REST API implementation
- Removed MinIO SDK dependency completely
- Built custom HTTP client with AWS S3 signature v4 support
- Created synchronous operations optimized for PowerShell
- Added real progress reporting during transfers
- Implemented performance metrics in result objects
- Fixed null pointer warnings for code quality
- Removed Write-Host usage from test scripts
- Cleaned up unnecessary DLL dependencies

Available cmdlets:
- Connect-MinIO: Enhanced connection with certificate options
- Get-MinIOBucket: List buckets with sorting and filtering
- New-MinIOBucket: Create buckets with region support
- Test-MinIOBucketExists: Check bucket existence
- Get-MinIOObject: List objects with advanced filtering
- New-MinIOObject: Upload files with real progress
- Get-MinIOObjectContent: Download files with progress

This represents a complete architectural overhaul for better PowerShell compatibility and performance.
2025-07-11 14:36:39 -04:00
PSMinIO Developer 90c64d3237 Major project reorganization: Centralized version management and improved structure
- Reorganized project structure with proper directory separation:
  * All scripts moved to scripts/ directory (including examples)
  * All documentation moved to docs/ directory (except README.md)
  * Centralized version management in Version.ps1

- Implemented centralized version management system:
  * Version.ps1 provides single source of truth for version information
  * Automatic yyyy.MM.dd.HHmm versioning based on build time
  * scripts/Update-Version.ps1 updates all version references
  * src/Properties/AssemblyInfo.cs for assembly version information

- Enhanced build system:
  * scripts/Build.ps1 - Full build with validation and packaging
  * scripts/Quick-Build.ps1 - Fast build handling file locking issues
  * Removed automatic copy from project file to avoid locking
  * Integrated version updates into build process

- Updated PowerShell Gallery publishing:
  * scripts/Publish-PSMinIOToGallery.ps1 updated for new structure
  * docs/POWERSHELL-GALLERY-RELEASE.md comprehensive publishing guide
  * Module manifest updated with proper metadata and release notes

- Updated all documentation and examples:
  * README.md updated with PowerShell Gallery installation
  * All example scripts updated with correct import paths
  * scripts/examples/README.md updated for new location
  * docs/PROJECT-STRUCTURE.md documents new organization

- Version updated to 2025.07.11.1151 with centralized management
- All import paths corrected for new structure
- Professional project organization following PowerShell best practices
2025-07-11 11:53:08 -04:00