github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/blob_store/s3_blob_store/blob_store_verifier.go (about) 1 package s3_blob_store 2 3 import ( 4 "github.com/aws/aws-sdk-go/aws" 5 "github.com/aws/aws-sdk-go/aws/awserr" 6 "github.com/aws/aws-sdk-go/aws/credentials" 7 "github.com/aws/aws-sdk-go/aws/session" 8 "github.com/aws/aws-sdk-go/service/s3" 9 10 config_package "github.com/cloudfoundry-incubator/ltc/config" 11 ) 12 13 type Verifier struct { 14 Endpoint string 15 } 16 17 func (v Verifier) Verify(config *config_package.Config) (authorized bool, err error) { 18 blobStoreConfig := config.S3BlobStore() 19 client := s3.New(session.New(&aws.Config{ 20 Credentials: credentials.NewStaticCredentials(blobStoreConfig.AccessKey, blobStoreConfig.SecretKey, ""), 21 Region: aws.String(blobStoreConfig.Region), 22 S3ForcePathStyle: aws.Bool(true), 23 })) 24 if v.Endpoint != "" { 25 client.Endpoint = v.Endpoint 26 } 27 _, err = client.ListObjects(&s3.ListObjectsInput{ 28 Bucket: aws.String(blobStoreConfig.BucketName), 29 }) 30 if err != nil { 31 if awsErr, ok := err.(awserr.RequestFailure); ok && awsErr.StatusCode() == 403 { 32 return false, nil 33 } 34 35 return false, err 36 } 37 return true, nil 38 }