Files
files/internal/storage/aliyun/client.go
2026-09-09 16:42:21 +08:00

32 lines
842 B
Go

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 }