Skip to content

Commit b905967

Browse files
author
Carlisia Thompson
authored
Merge pull request #87 from justenwalker/fix-ListBlobs
fix: missing results in ListObjects/CommonPrefixes
2 parents 5fd939f + 73eef56 commit b905967

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

velero-plugin-for-microsoft-azure/object_store.go

+28-13
Original file line numberDiff line numberDiff line change
@@ -390,14 +390,24 @@ func (o *ObjectStore) ListCommonPrefixes(bucket, prefix, delimiter string) ([]st
390390
Delimiter: delimiter,
391391
}
392392

393-
res, err := container.ListBlobs(params)
394-
if err != nil {
395-
return nil, errors.WithStack(err)
393+
var prefixes []string
394+
for {
395+
res, err := container.ListBlobs(params)
396+
if err != nil {
397+
return nil, errors.WithStack(err)
398+
}
399+
prefixes = append(prefixes, res.BlobPrefixes...)
400+
if res.NextMarker == "" {
401+
break
402+
}
403+
params.Marker = res.NextMarker
396404
}
397405

398-
return res.BlobPrefixes, nil
406+
return prefixes, nil
399407
}
400408

409+
410+
401411
func (o *ObjectStore) ListObjects(bucket, prefix string) ([]string, error) {
402412
container, err := o.containerGetter.getContainer(bucket)
403413
if err != nil {
@@ -408,17 +418,22 @@ func (o *ObjectStore) ListObjects(bucket, prefix string) ([]string, error) {
408418
Prefix: prefix,
409419
}
410420

411-
res, err := container.ListBlobs(params)
412-
if err != nil {
413-
return nil, errors.WithStack(err)
414-
}
415-
416-
ret := make([]string, 0, len(res.Blobs))
417-
for _, blob := range res.Blobs {
418-
ret = append(ret, blob.Name)
421+
var objects []string
422+
for {
423+
res, err := container.ListBlobs(params)
424+
if err != nil {
425+
return nil, errors.WithStack(err)
426+
}
427+
for _, blob := range res.Blobs {
428+
objects = append(objects, blob.Name)
429+
}
430+
if res.NextMarker == "" {
431+
break
432+
}
433+
params.Marker = res.NextMarker
419434
}
420435

421-
return ret, nil
436+
return objects, nil
422437
}
423438

424439
func (o *ObjectStore) DeleteObject(bucket string, key string) error {

0 commit comments

Comments
 (0)