阿里云oss
This commit is contained in:
@@ -22,6 +22,7 @@ type ALiYunOSSClient struct {
|
|||||||
ossClient *oss.Client
|
ossClient *oss.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewAliYunOSS 创建阿里云OSS客户端
|
||||||
func (c *ALiYunOSSClient) NewAliYunOSS() (err error) {
|
func (c *ALiYunOSSClient) NewAliYunOSS() (err error) {
|
||||||
if c.AccessKeyID == "" || c.AccessKeySecret == "" {
|
if c.AccessKeyID == "" || c.AccessKeySecret == "" {
|
||||||
return errors.New("请配置 oss accessKeyID accessKeySecret")
|
return errors.New("请配置 oss accessKeyID accessKeySecret")
|
||||||
@@ -35,7 +36,8 @@ func (c *ALiYunOSSClient) NewAliYunOSS() (err error) {
|
|||||||
return nil
|
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
|
// 生成PutObject的预签名URL
|
||||||
result, err = c.ossClient.Presign(
|
result, err = c.ossClient.Presign(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
@@ -51,7 +53,8 @@ func (c *ALiYunOSSClient) GetSignUrl(bucket string, key string, expires time.Dur
|
|||||||
return
|
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
|
// 生成PutObject的预签名URL
|
||||||
result, err = c.ossClient.Presign(
|
result, err = c.ossClient.Presign(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
@@ -64,6 +67,19 @@ func (c *ALiYunOSSClient) GetSignUrlByPutObjectRequest(req *oss.PutObjectRequest
|
|||||||
return
|
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 上传本地文件
|
// PutForLocalFile 上传本地文件
|
||||||
func (c *ALiYunOSSClient) PutForLocalFile(bucket, key, path string) (result *oss.PutObjectResult, err error) {
|
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 删除对象
|
// 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{
|
request := &oss.DeleteObjectRequest{
|
||||||
Bucket: oss.Ptr(bucket), // 存储空间名称
|
Bucket: oss.Ptr(bucket), // 存储空间名称
|
||||||
Key: oss.Ptr(key), // 对象名称
|
Key: oss.Ptr(key), // 对象名称
|
||||||
}
|
}
|
||||||
// 执行删除对象的操作并处理结果
|
// 执行删除对象的操作并处理结果
|
||||||
_, err = c.ossClient.DeleteObject(context.TODO(), request)
|
result, err = c.ossClient.DeleteObject(context.TODO(), request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
return nil
|
return result, err
|
||||||
}
|
}
|
||||||
|
@@ -30,7 +30,7 @@ func TestALiYunOSSClient_GetSignUrl(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
sign, err := client.GetSignUrl("", "test/upload/bizhi1.jpg", 0)
|
sign, err := client.GetPutSignUrl("", "test/upload/bizhi1.jpg", 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ func TestALiYunOSSClient_GetSignUrlByPutObjectRequest(t *testing.T) {
|
|||||||
req.Bucket = oss.Ptr("")
|
req.Bucket = oss.Ptr("")
|
||||||
req.Key = oss.Ptr("test/upload/bizhi2.jpg")
|
req.Key = oss.Ptr("test/upload/bizhi2.jpg")
|
||||||
req.ContentType = oss.Ptr("application/octet-stream")
|
req.ContentType = oss.Ptr("application/octet-stream")
|
||||||
sign, err := client.GetSignUrlByPutObjectRequest(req, 0)
|
sign, err := client.GetPutSignUrlByPutObjectRequest(req, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,22 @@ func TestALiYunOSSClient_PutForLocalFile(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
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 {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
@@ -96,10 +111,10 @@ func TestALiYunOSSClient_DelObject(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
err = client.DelObject("", "test/upload/bizhi2.jpg")
|
res, err := client.DelObject("", "test/upload/bizhi2.jpg")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
} else {
|
} else {
|
||||||
t.Log("成功")
|
t.Log(res)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user