package ali import ( "context" "strings" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" ) type OSSClient struct { client *oss.Client internalClient *oss.Client config *Config } func (c *OSSClient) GetClient() *oss.Client { return c.client } func (c *OSSClient) PreSignUpload(ctx context.Context, path string) (*oss.PresignResult, error) { request := &oss.PutObjectRequest{ Bucket: oss.Ptr(c.config.Bucket), Key: oss.Ptr("quyun/" + strings.Trim(path, "/")), ContentType: oss.Ptr("multipart/form-data"), } return c.client.Presign(ctx, request) } func (c *OSSClient) Download(ctx context.Context, path, dest string) error { request := &oss.GetObjectRequest{ Bucket: oss.Ptr(c.config.Bucket), Key: oss.Ptr(path), } _, err := c.client.GetObjectToFile(ctx, request, dest) if err != nil { return err } return nil }