如何将本地minIO存储与aws-sdk-go-v2连接起来?在go SDK的上一个版本中,我可以找到关于如何做到这一点的清晰文档,而不是使用V2。我阅读了版本2的源代码,似乎aws-sdk-go-v2删除了禁用SSL的选项,并指定了本地S3端点(服务S3必须采用amazon )。
发布于 2021-06-23 00:35:53
您可以通过以下方法很容易地做到这一点:
const defaultRegion = "us-east-1"
staticResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
return aws.Endpoint{
PartitionID: "aws",
URL: "http://localhost:9123", // or where ever you ran minio
SigningRegion: defaultRegion,
HostnameImmutable: true,
}, nil
})
cfg = aws.Config{
Region: defaultRegion,
Credentials: credentials.NewStaticCredentialsProvider("minioadmin", "minioadmin", ""),
EndpointResolver: staticResolver,
}
s3Client := s3.NewFromConfig(cfg)发布于 2022-10-07 08:44:44
到今天为止,aws.EndpointResolverFunc已经不再受欢迎了--这就是对我起作用的原因:
const defaultRegion = "us-east-1"
hostAddress := "http://localhost:9000"
resolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...any) (aws.Endpoint, error) {
return aws.Endpoint{
PartitionID: "aws",
URL: hostAddress,
SigningRegion: defaultRegion,
HostnameImmutable: true,
}, nil
})
cfg, err = config.LoadDefaultConfig(context.Background(),
config.WithRegion(defaultRegion),
config.WithEndpointResolverWithOptions(resolver),
config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("minioadmin", "minioadmin", "")),
)
s3Client := s3.NewFromConfig(cfg)发布于 2022-10-20 21:21:28
aws-sdk-go-v2的派生版本
const defaultRegion = "us-east-1"
hostAddress := "http://localhost:9000"
resolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...any) (aws.Endpoint, error) {
return aws.Endpoint{
PartitionID: "aws",
SigningRegion: defaultRegion,
URL: hostAddress,
HostnameImmutable: true,
}, nil
})
cfg := aws.Config{
Region: defaultRegion,
EndpointResolverWithOptions: resolver
Credentials: credentials.NewStaticCredentialsProvider("minioadmin", "minioadmin", ""),
}
return s3.NewFromConfig(cfg)https://stackoverflow.com/questions/67575681
复制相似问题