diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go index 7fb7f2381..9f3de6355 100644 --- a/registry/storage/driver/s3-aws/s3.go +++ b/registry/storage/driver/s3-aws/s3.go @@ -1044,18 +1044,8 @@ func (d *driver) Walk(ctx context.Context, from string, f storagedriver.WalkFn, o(walkOptions) } - path := from - if !strings.HasSuffix(path, "/") { - path = path + "/" - } - - prefix := "" - if d.s3Path("") == "" { - prefix = "/" - } - var objectCount int64 - if err := d.doWalk(ctx, &objectCount, d.s3Path(path), prefix, walkOptions.StartAfterHint, f); err != nil { + if err := d.doWalk(ctx, &objectCount, from, walkOptions.StartAfterHint, f); err != nil { return err } @@ -1067,7 +1057,7 @@ func (d *driver) Walk(ctx context.Context, from string, f storagedriver.WalkFn, return nil } -func (d *driver) doWalk(parentCtx context.Context, objectCount *int64, path, prefix string, startAfter string, f storagedriver.WalkFn) error { +func (d *driver) doWalk(parentCtx context.Context, objectCount *int64, from string, startAfter string, f storagedriver.WalkFn) error { var ( retError error // the most recent directory walked for de-duping @@ -1075,11 +1065,25 @@ func (d *driver) doWalk(parentCtx context.Context, objectCount *int64, path, pre // the most recent skip directory to avoid walking over undesirable files prevSkipDir string ) +<<<<<<< HEAD prevDir = strings.Replace(path, d.s3Path(""), prefix, 1) +======= + prevDir = from + + path := from + if !strings.HasSuffix(path, "/") { + path = path + "/" + } + + prefix := "" + if d.s3Path("") == "" { + prefix = "/" + } +>>>>>>> 79bfef2e (Don't return the from of a walk) listObjectsInput := &s3.ListObjectsV2Input{ Bucket: aws.String(d.Bucket), - Prefix: aws.String(path), + Prefix: aws.String(d.s3Path(path)), MaxKeys: aws.Int64(listMax), StartAfter: aws.String(path + startAfter), } diff --git a/registry/storage/driver/s3-aws/s3_test.go b/registry/storage/driver/s3-aws/s3_test.go index 43e04ea3d..b83b8773a 100644 --- a/registry/storage/driver/s3-aws/s3_test.go +++ b/registry/storage/driver/s3-aws/s3_test.go @@ -637,7 +637,6 @@ func TestWalk(t *testing.T) { name: "from folder", fn: func(fileInfo storagedriver.FileInfo) error { return nil }, expected: []string{ - "/folder1", "/folder1/file1", }, from: "/folder1",