forked from TrueCloudLab/frostfs-s3-gw
[#339] Drop aws-sdk-go v1
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
389e0de403
commit
c4c757eea6
20 changed files with 278 additions and 1801 deletions
|
@ -9,10 +9,8 @@ import (
|
|||
"time"
|
||||
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/auth"
|
||||
credentialsv2 "github.com/aws/aws-sdk-go-v2/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go-v2/aws"
|
||||
"github.com/aws/aws-sdk-go-v2/config"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
@ -61,29 +59,41 @@ func initGeneratePresignedURLCmd() {
|
|||
_ = generatePresignedURLCmd.MarkFlagRequired(objectFlag)
|
||||
}
|
||||
|
||||
func runGeneratePresignedURLCmd(*cobra.Command, []string) error {
|
||||
var cfg aws.Config
|
||||
func runGeneratePresignedURLCmd(cmd *cobra.Command, _ []string) error {
|
||||
var (
|
||||
region string
|
||||
creds aws.Credentials
|
||||
)
|
||||
|
||||
if region := viper.GetString(regionFlag); region != "" {
|
||||
cfg.Region = ®ion
|
||||
}
|
||||
accessKeyID := viper.GetString(awsAccessKeyIDFlag)
|
||||
secretAccessKey := viper.GetString(awsSecretAccessKeyFlag)
|
||||
profile := viper.GetString(profileFlag)
|
||||
|
||||
if accessKeyID != "" && secretAccessKey != "" {
|
||||
cfg.Credentials = credentials.NewStaticCredentialsFromCreds(credentials.Value{
|
||||
AccessKeyID: accessKeyID,
|
||||
SecretAccessKey: secretAccessKey,
|
||||
})
|
||||
if profile == "" {
|
||||
cfg, err := config.LoadDefaultConfig(cmd.Context())
|
||||
if err != nil {
|
||||
return wrapPreparationError(err)
|
||||
}
|
||||
region = cfg.Region
|
||||
if creds, err = cfg.Credentials.Retrieve(cmd.Context()); err != nil {
|
||||
return wrapPreparationError(fmt.Errorf("couldn't get default aws credentials: %w", err))
|
||||
}
|
||||
} else {
|
||||
cfg, err := config.LoadSharedConfigProfile(cmd.Context(), viper.GetString(profileFlag))
|
||||
if err != nil {
|
||||
return wrapPreparationError(fmt.Errorf("couldn't get '%s' aws credentials: %w", viper.GetString(profileFlag), err))
|
||||
}
|
||||
region = cfg.Region
|
||||
creds = cfg.Credentials
|
||||
}
|
||||
|
||||
sess, err := session.NewSessionWithOptions(session.Options{
|
||||
Config: cfg,
|
||||
Profile: viper.GetString(profileFlag),
|
||||
SharedConfigState: session.SharedConfigEnable,
|
||||
})
|
||||
if err != nil {
|
||||
return wrapPreparationError(fmt.Errorf("couldn't get aws credentials: %w", err))
|
||||
accessKeyIDArg := viper.GetString(awsAccessKeyIDFlag)
|
||||
secretAccessKeyArg := viper.GetString(awsSecretAccessKeyFlag)
|
||||
if accessKeyIDArg != "" && secretAccessKeyArg != "" {
|
||||
creds.AccessKeyID = accessKeyIDArg
|
||||
creds.SecretAccessKey = secretAccessKeyArg
|
||||
}
|
||||
|
||||
if regionArg := viper.GetString(regionFlag); regionArg != "" {
|
||||
region = regionArg
|
||||
}
|
||||
|
||||
reqData := auth.RequestData{
|
||||
|
@ -94,7 +104,7 @@ func runGeneratePresignedURLCmd(*cobra.Command, []string) error {
|
|||
}
|
||||
presignData := auth.PresignData{
|
||||
Service: "s3",
|
||||
Region: *sess.Config.Region,
|
||||
Region: region,
|
||||
Lifetime: viper.GetDuration(lifetimeFlag),
|
||||
SignTime: time.Now().UTC(),
|
||||
}
|
||||
|
@ -107,15 +117,9 @@ func runGeneratePresignedURLCmd(*cobra.Command, []string) error {
|
|||
|
||||
var req *http.Request
|
||||
if viper.GetBool(sigV4AFlag) {
|
||||
val, err := sess.Config.Credentials.Get()
|
||||
if err != nil {
|
||||
return wrapPreparationError(err)
|
||||
}
|
||||
|
||||
awsCreds := credentialsv2.NewStaticCredentialsProvider(val.AccessKeyID, val.SecretAccessKey, "")
|
||||
req, err = auth.PresignRequestV4a(awsCreds, reqData, presignData)
|
||||
req, err = auth.PresignRequestV4a(creds, reqData, presignData)
|
||||
} else {
|
||||
req, err = auth.PresignRequest(sess.Config.Credentials, reqData, presignData)
|
||||
req, err = auth.PresignRequest(cmd.Context(), creds, reqData, presignData)
|
||||
}
|
||||
if err != nil {
|
||||
return wrapBusinessLogicError(err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue