mirror of
https://github.com/langgenius/dify-cloud-kit.git
synced 2026-07-19 21:43:35 -04:00
enhance s3 create bucket logic, only create if not found
This commit is contained in:
+10
-6
@@ -3,6 +3,7 @@ package s3
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -11,6 +12,7 @@ import (
|
||||
"github.com/aws/aws-sdk-go-v2/config"
|
||||
"github.com/aws/aws-sdk-go-v2/credentials"
|
||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||
"github.com/aws/smithy-go"
|
||||
"github.com/langgenius/dify-cloud-kit/oss"
|
||||
)
|
||||
|
||||
@@ -83,14 +85,16 @@ func NewS3Storage(args oss.OSSArgs) (oss.OSS, error) {
|
||||
Bucket: aws.String(bucket),
|
||||
})
|
||||
if err != nil {
|
||||
_, err = client.CreateBucket(context.TODO(), &s3.CreateBucketInput{
|
||||
Bucket: aws.String(bucket),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
var apiErr smithy.APIError
|
||||
if errors.As(err, &apiErr) && apiErr.ErrorCode() == "NotFound" {
|
||||
_, err = client.CreateBucket(context.TODO(), &s3.CreateBucketInput{
|
||||
Bucket: aws.String(bucket),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return &S3Storage{bucket: bucket, client: client}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@ var allCases = []testArgsCases{
|
||||
Bucket: os.Getenv("TENCNET_COS_BUCKET"),
|
||||
},
|
||||
},
|
||||
skip: true,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user