- 增加华为云
continuous-integration/drone/push Build is passing Details

master
李光春 2 years ago
parent e59a2ef87a
commit 9b1bf4e9d6

@ -25,6 +25,12 @@ func NewAliYun(accessKeyId, accessKeySecret, endpoint, bucketName string) *AliYu
return app
}
// Bucket 存储空间
func (c *AliYun) Bucket(name string) *AliYun {
c.bucket, c.error = c.client.Bucket(name)
return c
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径

@ -30,6 +30,12 @@ func NewBaidu(accessKey string, secretAccessKey, endpoint, bucketName string) *B
return app
}
// Bucket 存储空间
func (c *Baidu) Bucket(name string) *Baidu {
c.BucketName = name
return c
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径

@ -5,6 +5,7 @@ go 1.18
require (
github.com/aliyun/aliyun-oss-go-sdk v2.2.3+incompatible
github.com/baidubce/bce-sdk-go v0.9.114
github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible
github.com/tencentyun/cos-go-sdk-v5 v0.7.34
)

@ -15,6 +15,8 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible h1:tANYIteuFrosKbRYUk1Yo/OGJjbt4x3OVg211Qc60M0=
github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible/go.mod h1:l7VUhRbTKCzdOacdT4oWCwATKyvZqUOlOqr0Ous3k4s=
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=

@ -1 +1,53 @@
package gostorage
import (
"github.com/huaweicloud/huaweicloud-sdk-go-obs/obs"
"io"
)
// Huaweicloud 华为云
type Huaweicloud struct {
AccessKey string
SecretKey string
Endpoint string
BucketName string
error error // 错误信息
client *obs.ObsClient // 驱动
}
// NewHuaweicloud 初始化
// https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0001.html
func NewHuaweicloud(accessKey string, secretKey string, endpoint string, bucketName string) *Huaweicloud {
app := &Huaweicloud{AccessKey: accessKey, SecretKey: secretKey, Endpoint: endpoint, BucketName: bucketName}
app.client, app.error = obs.New(accessKey, secretKey, endpoint)
if app.error == nil {
app.client.Close() // 关闭obsClient
}
return app
}
// Bucket 存储空间
func (c *Huaweicloud) Bucket(name string) *Huaweicloud {
c.BucketName = name
return c
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Huaweicloud) PutObject(file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName
}
input := &obs.PutObjectInput{}
input.Bucket = c.BucketName
input.Key = objectKey
input.Body = file
_, err = c.client.PutObject(input)
resp.Path = filePath
resp.Name = fileName
resp.Url = objectKey
return
}

@ -36,6 +36,11 @@ func NewTencent(secretID, secretKey, regions, bucketName string) *Tencent {
return app
}
// Bucket 存储空间
func (c *Tencent) Bucket(name string) *Tencent {
return NewTencent(c.SecretID, c.SecretKey, c.Regions, name)
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径

Loading…
Cancel
Save