forked from TrueCloudLab/distribution
Merge pull request #3181 from pimuzzo/s3-transfer-accelerate
Add new parameter accelerate to S3 storage driver.
This commit is contained in:
commit
cd51f38d53
3 changed files with 33 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue