func listBuckets(svc *s3.S3) ([]*Bucket, error) {
	res, err := svc.ListBuckets(&s3.ListBucketsInput{})
	if err != nil {
		return nil, err
	}

	buckets := make([]*Bucket, len(res.Buckets))
	for i, b := range res.Buckets {
		buckets[i] = &Bucket{
			Name:         *b.Name,
			CreationDate: *b.CreationDate,
		}

		locRes, err := svc.GetBucketLocation(&s3.GetBucketLocationInput{
			Bucket: b.Name,
		})
		if err != nil {
			buckets[i].Error = err
			continue
		}

		if locRes.LocationConstraint == nil {
			buckets[i].Region = "us-east-1"
		} else {
			buckets[i].Region = *locRes.LocationConstraint
		}
	}

	return buckets, nil
}
Example #2
0
func s3connect(svc *s3.S3) (*s3.ListBucketsOutput, error) {
	logger.Info("Attempting to connect...")
	var params *s3.ListBucketsInput
	resp, err := svc.ListBuckets(params)
	if err != nil {
		return nil, err
	}
	return resp, nil
}
Example #3
0
func ListBuckets(svc *s3.S3) {
	//svc := s3.New(session.New(),&aws.Config{Region: aws.String("us-east-1")})

	var params *s3.ListBucketsInput
	resp, err := svc.ListBuckets(params)

	if err != nil {
		// Print the error, cast err to awserr.Error to get the Code and
		// Message from an error.
		fmt.Println(err.Error())
		return
	}

	// Pretty-print the response data.
	fmt.Println(resp)
}
Example #4
0
func createBucket(bucket string, s3serv *s3.S3) {

	if resp, err := s3serv.ListBuckets(nil); err == nil {
		for _, b := range resp.Buckets {
			if *b.Name == bucket {
				return
			}
		}

		if resp, err := s3serv.CreateBucket(&s3.CreateBucketInput{
			Bucket: aws.String(bucket)}); err == nil {
		} else {
			fmt.Println(err, resp)
		}

	}
}