package s3 import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" ) func ObjectPresent(session *session.Session, key, bucket string) (bool, error) { s := s3.New(session) _, err := s.HeadObject(&s3.HeadObjectInput{ Bucket: aws.String(bucket), Key: aws.String(key), }) if err != nil { if aerr, ok := err.(awserr.Error); ok && aerr.Code() == "NotFound" { return false, nil } return false, fmt.Errorf("getting s3 object head to check if present: %v", err) } return true, nil }