func testBucket(s *s3.S3) *s3.Bucket { // Watch out! If this function is corrupted and made to match with something // people own, killBucket will happily remove *everything* inside the bucket. key := s.Auth.AccessKey if len(key) >= 8 { key = s.Auth.AccessKey[:8] } return s.Bucket(fmt.Sprintf("goamz-%s-%s", s.Region.Name, key)) }
func NewS3Session(auth *aws.Auth, region aws.Region) *s3.S3 { var s3Session *s3.S3 cert := x509.Certificate{} // go's systemVerify panics with no verify options set // TODO: EVG-483 if runtime.GOOS == "windows" { s3Session = s3.New(*auth, region) s3Session.ReadTimeout = S3ReadTimeout s3Session.WriteTimeout = S3WriteTimeout s3Session.ConnectTimeout = S3ConnectTimeout return s3Session } // no verify options so system root ca will be used _, err := cert.Verify(x509.VerifyOptions{}) rootsError := x509.SystemRootsError{} if err != nil && err.Error() == rootsError.Error() { // create a Transport which includes our TLSConfig with InsecureSkipVerify // and client timeouts. tlsConfig := tls.Config{InsecureSkipVerify: true} tr := http.Transport{ TLSClientConfig: &tlsConfig} // add the Transport to our http client client := &http.Client{Transport: &tr} s3Session = s3.New(*auth, region, client) } else { s3Session = s3.New(*auth, region) } s3Session.ReadTimeout = S3ReadTimeout s3Session.WriteTimeout = S3WriteTimeout s3Session.ConnectTimeout = S3ConnectTimeout return s3Session }
// Bucket get bucket of S3 via bucket name. func Bucket(connection *s3.S3, bucketName string) *s3.Bucket { return connection.Bucket(bucketName) }