Не получается указать регион в s3 github.com/aws/aws-sdk-go-v2
Хочу из go сервиса подключаться к selectel для загрузки на селектел изображений.
Использую библиотеку для go https://github.com/aws/aws-sdk-go-v2
// Load the Shared AWS Configuration (~/.aws/config)
cfg, err := config.LoadDefaultConfig(context.TODO(),
config.WithEndpointResolver(aws.EndpointResolverFunc(
func(service, region string) (aws.Endpoint, error) {
return aws.Endpoint{URL: "https://s3.selcdn.ru"}, nil
})), config.WithRegion("ru-1"), config.WithDefaultRegion("ru-1"),
)
Затем еще раз явно указываю регион:
// Create an Amazon S3 service client
client := s3.NewFromConfig(cfg, func(options *s3.Options) {
options.UsePathStyle = true
options.Region = "ru-1"
})
Без указания пробовал так, эффект тот же:
// Create an Amazon S3 service client
client := s3.NewFromConfig(cfg)
Делаю запрос и получаю ошибку:
// Get the first page of results for ListObjectsV2 for a bucket
output, err := client.ListObjectsV2(context.TODO(), &s3.ListObjectsV2Input{
Bucket: aws.String("test2"),
})
if err != nil {
log.Fatal(err)
}
Ошибка
2021/08/10 16:57:03 operation error S3: ListObjectsV2, https response error StatusCode: 400, RequestID: <ID>, HostID: , api error AuthorizationHeaderMalformed: The authorization header is malformed; the region '' is wrong; expecting 'ru-1'
~/.aws/credentials и ~/.aws/config указаны:
[default]
aws_access_key_id = ***
aws_secret_access_key = ***
[default]
region = ru-1