12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package services
- import (
- "bytes"
- "eta/eta_api/utils"
- "fmt"
- "github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/credentials"
- "github.com/aws/aws-sdk-go/aws/session"
- "github.com/aws/aws-sdk-go/service/s3"
- "io/ioutil"
- )
- func Upload2S3(fileName, filePath string) (resourceUrl string, err error) {
- defer func() {
- if err != nil {
- fmt.Println(err.Error())
- }
- }()
- // 替换为你的阿里云OSS Endpoint、access_key和access_key_secret
- endpoint := utils.Endpoint
- accessKey := utils.AccessKeyId
- secretKey := utils.AccessKeySecret
- // 创建AWS会话
- sess, e := session.NewSession(&aws.Config{
- Region: aws.String("oss-cn-shanghai"), // 替换为MinIO的region
- Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),
- Endpoint: aws.String(endpoint),
- S3ForcePathStyle: aws.Bool(false),
- })
- if e != nil {
- err = fmt.Errorf("new session err: %s", e.Error())
- return
- }
- // 创建S3服务客户端
- client := s3.New(sess)
- // 替换为你的S3桶名和文件路径
- bucketName := utils.Bucketname
- //filePath := "/path/to/your/file.txt"
- // 读取文件内容
- fileContent, e := ioutil.ReadFile(filePath)
- if e != nil {
- err = fmt.Errorf("read file err: %s", e.Error())
- return
- }
- path := utils.UploadDir + "test/"
- path += fileName
- // 将文件内容上传到MinIO
- _, e = client.PutObject(&s3.PutObjectInput{
- Bucket: aws.String(bucketName),
- Key: aws.String(path),
- Body: bytes.NewReader(fileContent),
- })
- if e != nil {
- err = fmt.Errorf("put object err: %s", e.Error())
- return
- }
- resourceUrl = utils.Imghost + path
- fmt.Println(resourceUrl)
- return
- }
|