github.com/kubri/kubri@v0.5.1-0.20240317001612-bda2aaef967e/source/s3/s3.go (about) 1 package s3 2 3 import ( 4 "net/url" 5 6 _ "gocloud.dev/blob/s3blob" // blob driver 7 8 "github.com/kubri/kubri/internal/blob" 9 "github.com/kubri/kubri/source" 10 ) 11 12 type Config struct { 13 Bucket string 14 Folder string 15 Endpoint string 16 Region string 17 DisableSSL bool 18 URL string 19 } 20 21 func New(c Config) (*source.Source, error) { 22 q := url.Values{} 23 if c.Region != "" { 24 q.Add("region", c.Region) 25 } 26 if c.DisableSSL { 27 q.Add("disableSSL", "true") 28 } 29 if c.Endpoint != "" { 30 q.Add("endpoint", c.Endpoint) 31 q.Add("s3ForcePathStyle", "true") 32 } 33 return blob.NewSource("s3://"+c.Bucket+"?"+q.Encode(), c.Folder, c.URL) 34 }