29 lines
644 B
Go
29 lines
644 B
Go
|
package s3
|
||
|
|
||
|
import (
|
||
|
"net/url"
|
||
|
|
||
|
"github.com/minio/minio-go/v7"
|
||
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
||
|
)
|
||
|
|
||
|
// Connect try to use a path to setup a connection to s3 server
|
||
|
func Connect(path string) (client, string, error) {
|
||
|
url, err := url.Parse(path)
|
||
|
if err != nil {
|
||
|
return nil, "", err
|
||
|
}
|
||
|
|
||
|
secretAccessKey, err := url.Userinfo.Password()
|
||
|
if err != nil {
|
||
|
return nil, "", err
|
||
|
}
|
||
|
|
||
|
// Initialize minio client object.
|
||
|
minioClient, err := minio.New(url.Host, &minio.Options{
|
||
|
Creds: credentials.NewStaticV4(url.Userinfo.Username(), secretAccessKey, ""),
|
||
|
Secure: url.Schema[-1] == "s",
|
||
|
})
|
||
|
return minioClient, url.Path, err
|
||
|
}
|