AWS SDK Go
使用 AWS 官方 SDK aws-sdk-go
package main
import (
"strings"
"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"
)
const (
s3endpoint = "https://api-s3.qiniu.com"
s3region = "cn-east-1"
s3bucket = "<your-qiniu-bucket>"
)
func main() {
s3provider := credentials.StaticProvider{
Value: credentials.Value{"<your-qiniu-access-key-id>", "<your-qiniu-access-key-secret>", ""},
}
s3credential := credentials.NewCredentials(&s3provider)
s3payload := &s3.PutObjectInput{
Bucket: aws.String(s3bucket),
Key: aws.String("s3.txt"),
ContentType: aws.String("text/plain"),
Body: strings.NewReader("Hello, world!"),
}
s3session := session.New()
s3session.Config.WithEndpoint(s3endpoint)
s3session.Config.WithRegion(s3region)
s3session.Config.WithCredentials(s3credential)
s3session.Config.WithMaxRetries(1)
s3session.Config.WithS3ForcePathStyle(true)
s3service := s3.New(s3session, nil)
s3response, s3err := s3service.PutObject(s3payload)
if s3err != nil {
panic(s3err.Error())
}
println(s3response.String())
}