func cleanupBucket(bucket string, S3 *s3.S3) error { req := &s3.ListObjectVersionsInput{ Bucket: aws.String(bucket), } res, err := S3.ListObjectVersions(req) if err != nil { return err } for _, d := range res.DeleteMarkers { go cleanupBucketObject(bucket, *d.Key, *d.VersionID, S3) } for _, v := range res.Versions { go cleanupBucketObject(bucket, *v.Key, *v.VersionID, S3) } return nil }