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 }