Files
PSMinIO/README.md
T
2025-07-10 12:58:44 -04:00

71 lines
2.4 KiB
Markdown

# PSMinIO
A fully-fledged C# PowerShell binary module built on top of the [Minio](https://www.nuget.org/packages/Minio) .NET SDK for managing MinIO object storage operations.
## Features
- **Cross-Platform Compatibility**: Built for .NET Standard 2.0, compatible with PowerShell 5.1+ and PowerShell 7+
- **Comprehensive Bucket Operations**: Create, list, delete, and check bucket existence
- **Object Management**: Upload, download, list, and delete objects with progress tracking
- **Security & Policy Management**: Manage bucket policies and access controls
- **Synchronous Operations**: All operations are synchronous for PowerShell compatibility
- **Detailed Logging**: Centralized logging with timestamps when `-Verbose` is specified
- **Progress Reporting**: Upload/download progress with percentages and time estimates
## Installation
```powershell
# Import the module
Import-Module .\PSMinIO.psd1
```
## Quick Start
```powershell
# Configure connection
Set-MinIOConfig -Endpoint 'https://minio.myorg.com' -AccessKey 'AKIA...' -SecretKey 'abc123' -UseSSL
# Create a bucket
New-MinIOBucket -BucketName 'my-bucket' -Verbose
# Upload a file
New-MinIOObject -BucketName 'my-bucket' -ObjectName 'data.txt' -FilePath 'C:\data.txt'
# List objects
Get-MinIOObject -BucketName 'my-bucket' -Prefix '2025/'
# Download an object
Get-MinIOObjectContent -BucketName 'my-bucket' -ObjectName 'data.txt' -FilePath 'C:\downloaded-data.txt'
```
## Cmdlets
### Bucket Operations
- `Get-MinIOBucket` - Lists all buckets
- `New-MinIOBucket` - Creates a new bucket
- `Remove-MinIOBucket` - Deletes a bucket
- `Test-MinIOBucketExists` - Checks if a bucket exists
### Object Operations
- `Get-MinIOObject` - Lists objects in a bucket
- `New-MinIOObject` - Uploads a file to a bucket
- `Get-MinIOObjectContent` - Downloads an object
- `Remove-MinIOObject` - Deletes an object
### Security & Policy
- `Get-MinIOBucketPolicy` - Retrieves bucket policy
- `Set-MinIOBucketPolicy` - Sets bucket policy
### Utility
- `Get-MinIOConfig` - Shows current configuration
- `Set-MinIOConfig` - Sets connection configuration
- `Get-MinIOStats` - Displays statistics and metrics
## Requirements
- PowerShell 5.1+ or PowerShell 7+
- .NET Framework 4.7.2+ (for PowerShell 5.1) or .NET Core/.NET 5+ (for PowerShell 7+)
## License
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.