package aliyun import ( "git.apinb.com/ops/files/internal/config" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) type Client struct { client *oss.Client bucket string presignTTL int64 } func New(cfg config.AliyunStorageConf, accessTTLSeconds int64) (*Client, error) { ossConfig := oss.LoadDefaultConfig(). WithRegion(cfg.Region). WithEndpoint(cfg.Endpoint). WithCredentialsProvider(credentials.NewStaticCredentialsProvider(cfg.AccessKeyID, cfg.AccessKeySecret)). WithSignatureVersion(oss.SignatureVersionV4) return &Client{ client: oss.NewClient(ossConfig), bucket: cfg.Bucket, presignTTL: accessTTLSeconds, }, nil } func (c *Client) Provider() string { return "aliyun" } func (c *Client) Container() string { return c.bucket }