Files
PSMinIO/src
PSMinIO Developer dd8b63cfb5 Implement comprehensive bucket directory functionality across all upload cmdlets
COMPREHENSIVE BUCKET DIRECTORY SUPPORT:

 ADDED BUCKETDIRECTORY TO MULTIPART UPLOAD:
   Added BucketDirectory parameter to New-MinIOObjectMultipart
   Supports same path formats as regular upload cmdlet
   Automatic directory creation before multipart upload
   Consistent parameter aliases: Prefix, Folder

 NEW DEDICATED FOLDER MANAGEMENT CMDLETS:

 NEW-MINIOBUCKETFOLDER:
   Creates bucket folders with multi-level support
   Handles all path formats: '/Folder', 'Folder1/Folder2/Folder3', '\Folder\Folder1\Folder3'
   Recursive creation by default (-Recursive parameter)
   Force overwrite option (-Force parameter)
   Returns MinIOObjectInfo object for created folder

 REMOVE-MINIOBUCKETFOLDER:
   Removes bucket folders with safety checks
   Recursive deletion option (-Recursive parameter)
   Prevents accidental deletion of non-empty folders
   Force option to bypass safety checks
   Returns MinIOObjectInfo object for removed folder

 SHARED CORE FUNCTIONALITY:

 SANITIZEBUCKETDIRECTORY METHOD:
   Handles multiple input formats consistently
   Supports: '/Folder', 'Folder1/Folder2/Folder3', 'Folder', '\Folder\Folder1\Folder3'
   Removes invalid characters and normalizes to forward slashes
   Comprehensive path cleaning and validation

 ENSUREBUCKETDIRECTORYEXISTS METHOD:
   Recursive directory creation
   Checks existence before creation (efficiency)
   Creates directory markers as empty objects with trailing slash
   Non-critical error handling (MinIO creates implicitly)

 SUPPORTED PATH FORMATS:
   '/Folder'  'Folder'
   'Folder1/Folder2/Folder3'  'Folder1/Folder2/Folder3'
   'Folder'  'Folder'
   '\Folder\Folder1\Folder3'  'Folder/Folder1/Folder3'
   '  /Folder1//Folder2/  '  'Folder1/Folder2'

 USAGE EXAMPLES:
  # Create nested folder structure
  New-MinIOBucketFolder -BucketName 'mybucket' -FolderPath 'Documents/Projects/2024'

  # Upload with bucket directory
  New-MinIOObjectMultipart -BucketName 'mybucket' -FilePath 'file.zip' -BucketDirectory 'Archives/2024'

  # Remove folder recursively
  Remove-MinIOBucketFolder -BucketName 'mybucket' -FolderPath 'OldData' -Recursive

Complete bucket directory ecosystem with consistent functionality!
2025-07-14 23:09:31 -04:00
..