2026-09-09 16:42:21 +08:00
|
|
|
package aliyun
|
2026-08-03 23:51:21 +08:00
|
|
|
|
|
|
|
|
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 {
|
2026-09-09 16:42:21 +08:00
|
|
|
client *oss.Client
|
|
|
|
|
bucket string
|
|
|
|
|
presignTTL int64
|
2026-08-03 23:51:21 +08:00
|
|
|
}
|
|
|
|
|
|
2026-09-09 16:42:21 +08:00
|
|
|
func New(cfg config.AliyunStorageConf, accessTTLSeconds int64) (*Client, error) {
|
2026-08-03 23:51:21 +08:00
|
|
|
ossConfig := oss.LoadDefaultConfig().
|
|
|
|
|
WithRegion(cfg.Region).
|
|
|
|
|
WithEndpoint(cfg.Endpoint).
|
|
|
|
|
WithCredentialsProvider(credentials.NewStaticCredentialsProvider(cfg.AccessKeyID, cfg.AccessKeySecret)).
|
|
|
|
|
WithSignatureVersion(oss.SignatureVersionV4)
|
|
|
|
|
|
|
|
|
|
return &Client{
|
2026-09-09 16:42:21 +08:00
|
|
|
client: oss.NewClient(ossConfig),
|
|
|
|
|
bucket: cfg.Bucket,
|
|
|
|
|
presignTTL: accessTTLSeconds,
|
2026-08-03 23:51:21 +08:00
|
|
|
}, nil
|
|
|
|
|
}
|
2026-09-09 16:42:21 +08:00
|
|
|
|
|
|
|
|
func (c *Client) Provider() string { return "aliyun" }
|
|
|
|
|
|
|
|
|
|
func (c *Client) Container() string { return c.bucket }
|