func()

in pkg/gcv/configs/file.go [171:203]


func (p *gcsPath) ReadAll(ctx context.Context, predicates ...readPredicate) ([]File, error) {
	var files []File

	bucket := globals.client.Bucket(p.bucket)
	it := bucket.Objects(ctx, &storage.Query{
		Prefix: p.path,
	})
	glog.V(2).Infof("Listing files in GCS at host %s and path %s", p.bucket, p.path)
	for {
		attrs, err := it.Next()
		if err != nil {
			if err == iterator.Done {
				break
			}
			return nil, err
		}

		if !matchesPredicates(attrs.Name, predicates) {
			continue
		}

		file, err := p.read(ctx, bucket, attrs.Name)
		if err != nil {
			return nil, errors.Wrapf(err, "")
		}
		files = append(files, file)
	}

	if len(files) == 0 {
		return nil, errors.Errorf("no objects found at gs://%s/%s", p.bucket, p.path)
	}
	return files, nil
}