in sharedlibraries/storage/storage.go [428:453]
func ListObjects(ctx context.Context, bucketHandle *storage.BucketHandle, prefix, filter string, maxRetries int64) ([]*storage.ObjectAttrs, error) {
if bucketHandle == nil {
return nil, errors.New("no bucket defined")
}
rw := &ReadWriter{MaxRetries: maxRetries}
it := bucketHandle.Retryer(rw.retryOptions("Failed to list objects, retrying.")...).Objects(ctx, &storage.Query{Prefix: prefix})
var result []*storage.ObjectAttrs
for {
attrs, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
return nil, fmt.Errorf("error while iterating objects for prefix: %s, err: %v", prefix, err)
}
if !strings.Contains(attrs.Name, filter) {
log.CtxLogger(ctx).Debugw("Discarding object due to filter", "fileName", attrs.Name, "filter", filter)
continue
}
result = append(result, attrs)
}
sort.Slice(result, func(i, j int) bool { return result[i].Created.After(result[j].Created) })
return result, nil
}