示例#1
0
文件: main.go 项目: justinwalz/ss3
func listObjectsInBuckets(client *s3.S3, buckets []string, match string) error {
	for _, b := range buckets {
		bucket := client.Bucket(b)

		contents, err := bucket.GetBucketContents()
		if err != nil {
			return err
		}

		matches := []string{}
		for key, value := range *contents {
			if len(match) > 0 {
				if strings.HasPrefix(key, match) {
					matches = append(matches, key)
				}
			} else {
				fmt.Printf("%s (%d)\n", key, value.Size)
			}
		}

		if len(match) > 0 {
			sort.Strings(matches)
			fmt.Printf("%s\n", matches[len(matches)-1])
		}

		return nil
	}

	return nil
}
示例#2
0
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))
}
示例#3
0
文件: s3upload.go 项目: hoysoft/JexGO
func (s *S3Config) Bucket(client *s3.S3) (*s3.Bucket, error) {
	b := client.Bucket(s.BucketName)
	resp, err := client.ListBuckets()
	if err != nil {
		return b, err
	}
	if bucketOfName(resp.Buckets, s.BucketName) == nil {
		err = b.PutBucket(s3.ACL(s.Acl))
		if err != nil {
			return b, err
		}
	}
	return b, nil
}
示例#4
0
文件: main.go 项目: justinwalz/ss3
func listBuckets(client *s3.S3, match string) error {
	resp, err := client.ListBuckets()
	if err != nil {
		return err
	}

	for _, bucket := range resp.Buckets {
		if len(match) > 0 {
			if strings.HasPrefix(bucket.Name, match) {
				fmt.Printf("%s\n", bucket.Name)
			}
		} else {
			fmt.Printf("%s\n", bucket.Name)
		}
	}

	return nil
}