- 增加百度云
continuous-integration/drone/push Build is passing Details

master
李光春 2 years ago
parent b4b55809c4
commit e59a2ef87a

@ -5,11 +5,12 @@ import (
"io"
)
// AliYun 阿里云 OSS 存储
// AliYun 阿里云
type AliYun struct {
Endpoint string
AccessKeyId string
AccessKeySecret string
Endpoint string
BucketName string
error error // 错误信息
client *oss.Client // 驱动
bucket *oss.Bucket // 存储空间
@ -17,8 +18,8 @@ type AliYun struct {
// NewAliYun 初始化
// https://help.aliyun.com/document_detail/32144.html
func NewAliYun(endpoint, accessKeyId, accessKeySecret, bucketName string) *AliYun {
app := &AliYun{Endpoint: endpoint, AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret}
func NewAliYun(accessKeyId, accessKeySecret, endpoint, bucketName string) *AliYun {
app := &AliYun{AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, Endpoint: endpoint, BucketName: bucketName}
app.client, app.error = oss.New(endpoint, accessKeyId, accessKeySecret)
app.bucket, app.error = app.client.Bucket(bucketName)
return app

@ -1 +1,48 @@
package gostorage
import (
"github.com/baidubce/bce-sdk-go/bce"
"github.com/baidubce/bce-sdk-go/services/bos"
"io"
)
// Baidu 百度云
type Baidu struct {
AccessKey string
SecretAccessKey string
Endpoint string
BucketName string
error error // 错误信息
client *bos.Client // 驱动
}
// NewBaidu 初始化
// https://cloud.baidu.com/doc/BOS/s/4jwvyry1p
func NewBaidu(accessKey string, secretAccessKey, endpoint, bucketName string) *Baidu {
app := &Baidu{AccessKey: accessKey, SecretAccessKey: secretAccessKey, Endpoint: endpoint, BucketName: bucketName}
clientConfig := bos.BosClientConfiguration{
Ak: accessKey,
Sk: secretAccessKey,
Endpoint: endpoint,
RedirectDisabled: false,
}
app.client, app.error = bos.NewClientWithConfig(&clientConfig)
return app
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Baidu) PutObject(file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName
}
bodyStream, err := bce.NewBodyFromSizedReader(file, -1)
_, err = c.client.PutObject(c.BucketName, objectKey, bodyStream, nil)
resp.Path = filePath
resp.Name = fileName
resp.Url = objectKey
return
}

@ -4,6 +4,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/tencentyun/cos-go-sdk-v5 v0.7.34
)

@ -1,6 +1,8 @@
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
github.com/aliyun/aliyun-oss-go-sdk v2.2.3+incompatible h1:KlwIELiuuvj7uMeEXrgXecPE3+xz/gGsDSnhL6Eztq0=
github.com/aliyun/aliyun-oss-go-sdk v2.2.3+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/baidubce/bce-sdk-go v0.9.114 h1:TPloS5n0zV/WdHxB4evzO1PCJ0fl9cXOOwSofbpFHn4=
github.com/baidubce/bce-sdk-go v0.9.114/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=

@ -9,18 +9,20 @@ import (
"net/url"
)
// Tencent 腾讯云
type Tencent struct {
BucketName string // 存储桶名称
Regions string // 所属地域
SecretID string // 用户的 SecretId
SecretKey string // 用户的 SecretKey
BucketName string // 存储桶名称
Regions string // 所属地域
client *cos.Client // 驱动
error error // 错误信息
}
// NewTencent 初始化
// https://cloud.tencent.com/document/product/436/31215
func NewTencent(bucketName, regions, secretID, secretKey string) *Tencent {
app := &Tencent{BucketName: bucketName, Regions: regions, SecretID: secretID, SecretKey: secretKey}
func NewTencent(secretID, secretKey, regions, bucketName string) *Tencent {
app := &Tencent{SecretID: secretID, SecretKey: secretKey, Regions: regions, BucketName: bucketName}
u, _ := url.Parse(fmt.Sprintf("https://%s.cos.%s.myqcloud.com", bucketName, regions))
su, _ := url.Parse(fmt.Sprintf("https://cos.%s.myqcloud.com", regions))
b := &cos.BaseURL{BucketURL: u, ServiceURL: su}

Loading…
Cancel
Save