Support path-based S3 storage. Closes #1495 (#1496)

* Support path-based S3 storage. Closes #1495

Revert "Remove forcing old path-style URLs with s3. Closes #497"

This reverts commit b2953028cf.

* #1495 Path-style S3 compatibile URLs implemented

https://github.com/owncast/owncast/issues/1495

It gives ability to use S3 compatibile providers that doesn't
support virtual-host-style URLs (i.e. Oracle Cloud Object Storage)

Co-authored-by: Artur Angiel <artur@angiel.ovh>
This commit is contained in:
Artur Angiel
2021-10-29 02:27:44 +02:00
committed by GitHub
parent 2600afa022
commit 2110dfd30c
3 changed files with 9 additions and 3 deletions

View File

@@ -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),
},
)