阿里云oss

This commit is contained in:
lzh
2025-07-16 15:51:16 +08:00
parent e246123ce2
commit 5f9f144ab3
2 changed files with 42 additions and 11 deletions

View File

@@ -22,6 +22,7 @@ type ALiYunOSSClient struct {
ossClient *oss.Client
}
// NewAliYunOSS 创建阿里云OSS客户端
func (c *ALiYunOSSClient) NewAliYunOSS() (err error) {
if c.AccessKeyID == "" || c.AccessKeySecret == "" {
return errors.New("请配置 oss accessKeyID accessKeySecret")
@@ -35,7 +36,8 @@ func (c *ALiYunOSSClient) NewAliYunOSS() (err error) {
return nil
}
func (c *ALiYunOSSClient) GetSignUrl(bucket string, key string, expires time.Duration) (result *oss.PresignResult, err error) {
// GetPutSignUrl 获取上传签名
func (c *ALiYunOSSClient) GetPutSignUrl(bucket string, key string, expires time.Duration) (result *oss.PresignResult, err error) {
// 生成PutObject的预签名URL
result, err = c.ossClient.Presign(
context.Background(),
@@ -51,7 +53,8 @@ func (c *ALiYunOSSClient) GetSignUrl(bucket string, key string, expires time.Dur
return
}
func (c *ALiYunOSSClient) GetSignUrlByPutObjectRequest(req *oss.PutObjectRequest, expires time.Duration) (result *oss.PresignResult, err error) {
// GetPutSignUrlByPutObjectRequest 根据PutObjectRequest生成PutObject的预签名URL
func (c *ALiYunOSSClient) GetPutSignUrlByPutObjectRequest(req *oss.PutObjectRequest, expires time.Duration) (result *oss.PresignResult, err error) {
// 生成PutObject的预签名URL
result, err = c.ossClient.Presign(
context.Background(),
@@ -64,6 +67,19 @@ func (c *ALiYunOSSClient) GetSignUrlByPutObjectRequest(req *oss.PutObjectRequest
return
}
// GetSignUrlByGetObjectRequest 根据GetObjectRequest生成GetObject的预签名URL
func (c *ALiYunOSSClient) GetSignUrlByGetObjectRequest(req *oss.GetObjectRequest) (result *oss.PresignResult, err error) {
// 生成PutObject的预签名URL
result, err = c.ossClient.Presign(
context.Background(),
req,
)
if err != nil {
return nil, err
}
return
}
// PutForLocalFile 上传本地文件
func (c *ALiYunOSSClient) PutForLocalFile(bucket, key, path string) (result *oss.PutObjectResult, err error) {
// 创建上传对象的请求
@@ -159,16 +175,16 @@ func (c *ALiYunOSSClient) GetObjectToImage(bucket string, key string) (img image
}
// DelObject 删除对象
func (c *ALiYunOSSClient) DelObject(bucket string, key string) (err error) {
func (c *ALiYunOSSClient) DelObject(bucket string, key string) (result *oss.DeleteObjectResult, err error) {
// 创建删除对象的请求
request := &oss.DeleteObjectRequest{
Bucket: oss.Ptr(bucket), // 存储空间名称
Key: oss.Ptr(key), // 对象名称
}
// 执行删除对象的操作并处理结果
_, err = c.ossClient.DeleteObject(context.TODO(), request)
result, err = c.ossClient.DeleteObject(context.TODO(), request)
if err != nil {
return err
return nil, err
}
return nil
return result, err
}