- 增加 `context`

master v1.0.15
dtapps 4 months ago
parent 39c777661e
commit 5f70d1b5dc

@ -13,5 +13,5 @@
#### 安装
```shell
go get -v -u go.dtapp.net/gostorage@v1.0.14
go get -v -u go.dtapp.net/gostorage@v1.0.15
```

@ -28,7 +28,7 @@ type AliYun struct {
// NewAliYun 初始化
// https://help.aliyun.com/document_detail/32144.html
func NewAliYun(config *AliYunConfig) (*AliYun, error) {
func NewAliYun(ctx context.Context, config *AliYunConfig) (*AliYun, error) {
app := &AliYun{}
app.accessKeyId = config.AccessKeyId
app.accessKeySecret = config.AccessKeySecret

@ -10,11 +10,11 @@ type Aws struct {
client *s3.Client
}
func NewAws() *Aws {
func NewAws(ctx context.Context) *Aws {
ac := &Aws{}
cfg, err := config.LoadDefaultConfig(context.TODO())
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
panic("configuration error, " + err.Error())
}

@ -1,6 +1,7 @@
package gostorage
import (
"context"
"github.com/baidubce/bce-sdk-go/bce"
"github.com/baidubce/bce-sdk-go/services/bos"
"io"
@ -18,7 +19,7 @@ type Baidu struct {
// NewBaidu 初始化
// https://cloud.baidu.com/doc/BOS/s/4jwvyry1p
func NewBaidu(accessKey string, secretAccessKey, endpoint, bucketName string) *Baidu {
func NewBaidu(ctx context.Context, accessKey string, secretAccessKey, endpoint, bucketName string) *Baidu {
app := &Baidu{AccessKey: accessKey, SecretAccessKey: secretAccessKey, Endpoint: endpoint, BucketName: bucketName}
clientConfig := bos.BosClientConfiguration{
Ak: accessKey,
@ -40,7 +41,7 @@ func (c *Baidu) Bucket(name string) *Baidu {
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Baidu) PutObject(file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
func (c *Baidu) PutObject(ctx context.Context, file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName

@ -1,6 +1,7 @@
package gostorage
import (
"context"
"github.com/huaweicloud/huaweicloud-sdk-go-obs/obs"
"io"
)
@ -17,7 +18,7 @@ type Huaweicloud struct {
// NewHuaweicloud 初始化
// https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0001.html
func NewHuaweicloud(accessKey string, secretKey string, endpoint string, bucketName string) *Huaweicloud {
func NewHuaweicloud(ctx context.Context, 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 {
@ -36,7 +37,7 @@ func (c *Huaweicloud) Bucket(name string) *Huaweicloud {
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Huaweicloud) PutObject(file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
func (c *Huaweicloud) PutObject(ctx context.Context, file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName

@ -1,6 +1,7 @@
package gostorage
import (
"context"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
@ -20,7 +21,7 @@ type Jdcloud struct {
// NewJdcloud 初始化
// https://docs.jdcloud.com/cn/object-storage-service/sdk-go
func NewJdcloud(accessKey string, secretKey string, endpoint *string, regions *string, bucketName string) *Jdcloud {
func NewJdcloud(ctx context.Context, accessKey string, secretKey string, endpoint *string, regions *string, bucketName string) *Jdcloud {
app := &Jdcloud{AccessKey: accessKey, SecretKey: secretKey, Endpoint: endpoint, Regions: regions, BucketName: bucketName}
reds := credentials.NewStaticCredentials(accessKey, secretKey, "")
_, app.error = reds.Get()

@ -1,6 +1,7 @@
package gostorage
import (
"context"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
@ -19,7 +20,7 @@ type Ksyun struct {
// NewKsyun 初始化
// https://docs.ksyun.com/documents/40487
func NewKsyun(accessKey string, secretKey string, endpoint string, regions string, bucketName string) *Ksyun {
func NewKsyun(ctx context.Context, accessKey string, secretKey string, endpoint string, regions string, bucketName string) *Ksyun {
app := &Ksyun{AccessKey: accessKey, SecretKey: secretKey, Endpoint: endpoint, Regions: regions, BucketName: bucketName}
var cre = credentials.NewStaticCredentials(accessKey, secretKey, "")
app.client = s3.New(&aws.Config{
@ -40,7 +41,7 @@ func (c *Ksyun) Bucket(name string) *Ksyun {
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Ksyun) PutObject(file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
func (c *Ksyun) PutObject(ctx context.Context, file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName

@ -19,7 +19,7 @@ type Qiniu struct {
// NewQiniu 初始化
// https://developer.qiniu.com/kodo/1238/go
func NewQiniu(accessKey string, secretKey string, bucketName string) *Qiniu {
func NewQiniu(ctx context.Context, accessKey string, secretKey string, bucketName string) *Qiniu {
app := &Qiniu{AccessKey: accessKey, SecretKey: secretKey, BucketName: bucketName}
app.client = qbox.NewMac(accessKey, secretKey)
app.bucket.Scope = bucketName
@ -37,7 +37,7 @@ func (c *Qiniu) Bucket(name string) *Qiniu {
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Qiniu) PutObject(file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
func (c *Qiniu) PutObject(ctx context.Context, file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName
@ -55,7 +55,7 @@ func (c *Qiniu) PutObject(file io.Reader, filePath, fileName, acl string) (resp
ret := storage.PutRet{}
putExtra := storage.PutExtra{}
err = formUploader.Put(context.Background(), &ret, c.upToken, objectKey, file, -1, &putExtra)
err = formUploader.Put(ctx, &ret, c.upToken, objectKey, file, -1, &putExtra)
resp.Path = filePath
resp.Name = fileName

@ -21,7 +21,7 @@ type Tencent struct {
// NewTencent 初始化
// https://cloud.tencent.com/document/product/436/31215
func NewTencent(secretID, secretKey, regions, bucketName string) *Tencent {
func NewTencent(ctx context.Context, 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))
@ -37,20 +37,20 @@ func NewTencent(secretID, secretKey, regions, bucketName string) *Tencent {
}
// Bucket 存储空间
func (c *Tencent) Bucket(name string) *Tencent {
return NewTencent(c.SecretID, c.SecretKey, c.Regions, name)
func (c *Tencent) Bucket(ctx context.Context, name string) *Tencent {
return NewTencent(ctx, c.SecretID, c.SecretKey, c.Regions, name)
}
// PutObject 上传文件流
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Tencent) PutObject(file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
func (c *Tencent) PutObject(ctx context.Context, file io.Reader, filePath, fileName string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName
}
_, err = c.client.Object.Put(context.Background(), objectKey, file, nil)
_, err = c.client.Object.Put(ctx, objectKey, file, nil)
resp.Path = filePath
resp.Name = fileName
resp.Url = objectKey

@ -1,6 +1,7 @@
package gostorage
import (
"context"
"github.com/upyun/go-sdk/v3/upyun"
"io"
)
@ -15,7 +16,7 @@ type Upyun struct {
// NewUpyun 初始化
// https://github.com/upyun/go-sdk
func NewUpyun(operator string, password string, bucketName string) *Upyun {
func NewUpyun(ctx context.Context, operator string, password string, bucketName string) *Upyun {
app := &Upyun{Operator: operator, Password: password, BucketName: bucketName}
app.client = upyun.NewUpYun(&upyun.UpYunConfig{
Bucket: bucketName,
@ -35,7 +36,7 @@ func (c *Upyun) Bucket(name string) *Upyun {
// @param file 文件流
// @param filePath 文件路径
// @param fileName 文件名称
func (c *Upyun) PutObject(file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
func (c *Upyun) PutObject(ctx context.Context, file io.Reader, filePath, fileName, acl string) (resp FileInfo, err error) {
objectKey := filePath
if fileName != "" {
objectKey = filePath + "/" + fileName

@ -1,3 +1,3 @@
package gostorage
const Version = "1.0.14"
const Version = "1.0.15"

Loading…
Cancel
Save