diff --git a/oss_tool/aliyun_oss.go b/oss_tool/aliyun_oss.go index 5fc8a66..1fa1187 100644 --- a/oss_tool/aliyun_oss.go +++ b/oss_tool/aliyun_oss.go @@ -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 } diff --git a/oss_tool/aliyun_oss_test.go b/oss_tool/aliyun_oss_test.go index 878deaa..08b7fe1 100644 --- a/oss_tool/aliyun_oss_test.go +++ b/oss_tool/aliyun_oss_test.go @@ -30,7 +30,7 @@ func TestALiYunOSSClient_GetSignUrl(t *testing.T) { if err != nil { t.Error(err) } - sign, err := client.GetSignUrl("", "test/upload/bizhi1.jpg", 0) + sign, err := client.GetPutSignUrl("", "test/upload/bizhi1.jpg", 0) if err != nil { t.Error(err) } @@ -46,7 +46,7 @@ func TestALiYunOSSClient_GetSignUrlByPutObjectRequest(t *testing.T) { req.Bucket = oss.Ptr("") req.Key = oss.Ptr("test/upload/bizhi2.jpg") req.ContentType = oss.Ptr("application/octet-stream") - sign, err := client.GetSignUrlByPutObjectRequest(req, 0) + sign, err := client.GetPutSignUrlByPutObjectRequest(req, 0) if err != nil { t.Error(err) } @@ -58,7 +58,22 @@ func TestALiYunOSSClient_PutForLocalFile(t *testing.T) { if err != nil { t.Error(err) } - result, err := client.PutForLocalFile("", "test/upload/bizhi2.jpg", "C:\\Users\\Administrator\\Desktop\\壁纸1.jpg") + result, err := client.PutForLocalFile("ssgfdown", "test/upload/bizhi2.jpg", "") + if err != nil { + t.Error(err) + } + t.Log(result) +} + +func TestALiYunOSSClient_GetSignUrlByGetObjectRequest(t *testing.T) { + err := client.NewAliYunOSS() + if err != nil { + t.Error(err) + } + req := &oss.GetObjectRequest{} + req.Bucket = oss.Ptr("ssgfdown") + req.Key = oss.Ptr("test/upload/bizhi2.jpg") + result, err := client.GetSignUrlByGetObjectRequest(req) if err != nil { t.Error(err) } @@ -96,10 +111,10 @@ func TestALiYunOSSClient_DelObject(t *testing.T) { if err != nil { t.Error(err) } - err = client.DelObject("", "test/upload/bizhi2.jpg") + res, err := client.DelObject("", "test/upload/bizhi2.jpg") if err != nil { t.Error(err) } else { - t.Log("成功") + t.Log(res) } }