diff --git a/extensions/AWS/S3/AWSS3Config.cs b/extensions/AWS/S3/AWSS3Config.cs index 6c3b4e320..2aa5c9574 100644 --- a/extensions/AWS/S3/AWSS3Config.cs +++ b/extensions/AWS/S3/AWSS3Config.cs @@ -39,6 +39,12 @@ public enum AuthTypes /// public string BucketName { get; set; } = string.Empty; + /// + /// When true, uses path-style addressing for S3 requests (e.g., https://s3.example.com/bucket-name/object). + /// This is required for S3-compatible services like MinIO that do not support virtual-hosted–style URLs. + /// + public bool ForcePathStyle { get; set; } = false; + public void Validate() { if (this.Auth == AuthTypes.Unknown) diff --git a/extensions/AWS/S3/AWSS3Storage.cs b/extensions/AWS/S3/AWSS3Storage.cs index 06b356249..d00a5c1ed 100644 --- a/extensions/AWS/S3/AWSS3Storage.cs +++ b/extensions/AWS/S3/AWSS3Storage.cs @@ -37,6 +37,7 @@ public AWSS3Storage( awsSecretAccessKey: config.SecretAccessKey, clientConfig: new AmazonS3Config { + ForcePathStyle = config.ForcePathStyle, ServiceURL = config.Endpoint, LogResponse = true } @@ -47,6 +48,7 @@ public AWSS3Storage( { this._client = new AmazonS3Client(new AmazonS3Config { + ForcePathStyle = config.ForcePathStyle, ServiceURL = config.Endpoint, LogResponse = true });