diff --git a/core/storageproviders/s3Storage.go b/core/storageproviders/s3Storage.go index ec8413046..251ee2e21 100644 --- a/core/storageproviders/s3Storage.go +++ b/core/storageproviders/s3Storage.go @@ -34,6 +34,7 @@ type S3Storage struct { s3AccessKey string s3Secret string s3ACL string + s3ForcePathStyle bool // If we try to upload a playlist but it is not yet on disk // then keep a reference to it here. @@ -67,6 +68,7 @@ func (s *S3Storage) Setup() error { s.s3AccessKey = s3Config.AccessKey s.s3Secret = s3Config.Secret s.s3ACL = s3Config.ACL + s.s3ForcePathStyle = s3Config.ForcePathStyle s.sess = s.connectAWS() @@ -184,9 +186,10 @@ func (s *S3Storage) connectAWS() *session.Session { sess, err := session.NewSession( &aws.Config{ - Region: aws.String(s.s3Region), - Credentials: creds, - Endpoint: aws.String(s.s3Endpoint), + Region: aws.String(s.s3Region), + Credentials: creds, + Endpoint: aws.String(s.s3Endpoint), + S3ForcePathStyle: aws.Bool(s.s3ForcePathStyle), }, ) diff --git a/models/s3Storage.go b/models/s3Storage.go index f768f1ed0..40da02caf 100644 --- a/models/s3Storage.go +++ b/models/s3Storage.go @@ -10,4 +10,5 @@ type S3 struct { Bucket string `json:"bucket,omitempty"` Region string `json:"region,omitempty"` ACL string `json:"acl,omitempty"` + ForcePathStyle bool `json:"forcePathStyle"` } diff --git a/openapi.yaml b/openapi.yaml index ca9779107..1bc448636 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -160,6 +160,8 @@ components: type: string acl: type: string + forcePathStyle: + type: boolean required: - enabled StreamQuality: