mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 12:58:02 +08:00
7c9064574d
Signed-off-by: Andrei Aaron <andreifdaaron@gmail.com>
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package dynamodb
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/aws/aws-sdk-go-v2/aws"
|
|
"github.com/aws/aws-sdk-go-v2/config"
|
|
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
|
|
)
|
|
|
|
type DBDriverParameters struct {
|
|
Endpoint, Region, RepoMetaTablename, RepoBlobsInfoTablename, ImageMetaTablename,
|
|
UserDataTablename, APIKeyTablename, VersionTablename string
|
|
}
|
|
|
|
func GetDynamoClient(params DBDriverParameters) (*dynamodb.Client, error) {
|
|
// Using the SDK's default configuration, loading additional config
|
|
// and credentials values from the environment variables, shared
|
|
// credentials, and shared configuration files
|
|
cfg, err := config.LoadDefaultConfig(context.Background(), config.WithRegion(params.Region))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// Create DynamoDB client with custom base endpoint if provided
|
|
var clientOptions []func(*dynamodb.Options)
|
|
if params.Endpoint != "" {
|
|
clientOptions = append(clientOptions, func(o *dynamodb.Options) {
|
|
o.BaseEndpoint = aws.String(params.Endpoint)
|
|
})
|
|
}
|
|
|
|
return dynamodb.NewFromConfig(cfg, clientOptions...), nil
|
|
}
|