You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
954 B
35 lines
954 B
package bucket
|
|
|
|
import (
|
|
"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/s3manager"
|
|
"io"
|
|
)
|
|
|
|
func Upload(key, secret,region, bucket, path, name string, body io.Reader) (string, error) {
|
|
//access_key := "AKIAJGSRUU3DWHVGWIHA"
|
|
//secret_key := "w3RA7AmhNlvdsE/rAry51QqtX6lg92E6vlTkC9B2"
|
|
|
|
sess, err := session.NewSession(&aws.Config{
|
|
Credentials: credentials.NewStaticCredentials(key, secret, ""),
|
|
Region: aws.String(region),
|
|
//DisableSSL: aws.Bool(true),
|
|
//S3ForcePathStyle: aws.Bool(false), //virtual-host style方式,不要修改
|
|
})
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
uploader := s3manager.NewUploader(sess)
|
|
out, err := uploader.Upload(&s3manager.UploadInput{
|
|
Bucket: aws.String(bucket),
|
|
Key: aws.String(path + name),
|
|
Body: body,
|
|
})
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return out.Location, nil
|
|
}
|