Merge pull request #3181 from pimuzzo/s3-transfer-accelerate

Add new parameter accelerate to S3 storage driver.
This commit is contained in:
Milos Gajdos 2022-04-04 18:50:50 +01:00 committed by GitHub
commit cd51f38d53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 0 deletions

View file

@ -118,6 +118,7 @@ storage:
secretkey: awssecretkey
region: us-west-1
regionendpoint: http://myobjects.local
accelerate: false
bucket: bucketname
encrypt: true
keyid: mykeyid
@ -422,6 +423,7 @@ storage:
secretkey: awssecretkey
region: us-west-1
regionendpoint: http://myobjects.local
accelerate: false
bucket: bucketname
encrypt: true
keyid: mykeyid

View file

@ -104,6 +104,7 @@ type DriverParameters struct {
ObjectACL string
SessionToken string
UseDualStack bool
Accelerate bool
}
func init() {
@ -377,6 +378,23 @@ func FromParameters(parameters map[string]interface{}) (*Driver, error) {
sessionToken := ""
accelerateBool := false
accelerate := parameters["accelerate"]
switch accelerate := accelerate.(type) {
case string:
b, err := strconv.ParseBool(accelerate)
if err != nil {
return nil, fmt.Errorf("the accelerate parameter should be a boolean")
}
accelerateBool = b
case bool:
accelerateBool = accelerate
case nil:
// do nothing
default:
return nil, fmt.Errorf("the accelerate parameter should be a boolean")
}
params := DriverParameters{
fmt.Sprint(accessKey),
fmt.Sprint(secretKey),
@ -399,6 +417,7 @@ func FromParameters(parameters map[string]interface{}) (*Driver, error) {
objectACL,
fmt.Sprint(sessionToken),
useDualStackBool,
accelerateBool,
}
return New(params)
@ -458,6 +477,7 @@ func New(params DriverParameters) (*Driver, error) {
awsConfig.WithEndpoint(params.RegionEndpoint)
}
awsConfig.WithS3UseAccelerate(params.Accelerate)
awsConfig.WithRegion(params.Region)
awsConfig.WithDisableSSL(!params.Secure)
if params.UseDualStack {

View file

@ -44,6 +44,7 @@ func init() {
sessionToken := os.Getenv("AWS_SESSION_TOKEN")
useDualStack := os.Getenv("S3_USE_DUALSTACK")
combineSmallPart := os.Getenv("MULTIPART_COMBINE_SMALL_PART")
accelerate := os.Getenv("S3_ACCELERATE")
if err != nil {
panic(err)
}
@ -86,6 +87,7 @@ func init() {
if useDualStack != "" {
useDualStackBool, err = strconv.ParseBool(useDualStack)
}
multipartCombineSmallPart := true
if combineSmallPart != "" {
multipartCombineSmallPart, err = strconv.ParseBool(combineSmallPart)
@ -94,6 +96,14 @@ func init() {
}
}
accelerateBool := true
if accelerate != "" {
accelerateBool, err = strconv.ParseBool(accelerate)
if err != nil {
return nil, err
}
}
parameters := DriverParameters{
accessKey,
secretKey,
@ -116,6 +126,7 @@ func init() {
objectACL,
sessionToken,
useDualStackBool,
accelerateBool,
}
return New(parameters)