一些aws上面的服务 静态资源上传, 邮件发送等等
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

5 years ago
  1. package bucket
  2. import (
  3. "github.com/aws/aws-sdk-go/aws"
  4. "github.com/aws/aws-sdk-go/aws/credentials"
  5. "github.com/aws/aws-sdk-go/aws/session"
  6. "github.com/aws/aws-sdk-go/service/s3/s3manager"
  7. "io"
  8. )
  9. func Upload(key, secret,region, bucket, path, name string, body io.Reader) (string, error) {
  10. //access_key := "AKIAJGSRUU3DWHVGWIHA"
  11. //secret_key := "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"
  12. sess, err := session.NewSession(&aws.Config{
  13. Credentials: credentials.NewStaticCredentials(key, secret, ""),
  14. Region: aws.String(region),
  15. //DisableSSL: aws.Bool(true),
  16. //S3ForcePathStyle: aws.Bool(false), //virtual-host style方式,不要修改
  17. })
  18. if err != nil {
  19. return "", err
  20. }
  21. uploader := s3manager.NewUploader(sess)
  22. out, err := uploader.Upload(&s3manager.UploadInput{
  23. Bucket: aws.String(bucket),
  24. Key: aws.String(path + name),
  25. Body: body,
  26. })
  27. if err != nil {
  28. return "", err
  29. }
  30. return out.Location, nil
  31. }