Repository: jclouds Updated Branches: refs/heads/master 4829bbbd2 -> e0c959c21
Pagination for listing LocalBlobStore MPU parts Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e0c959c2 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e0c959c2 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e0c959c2 Branch: refs/heads/master Commit: e0c959c212c4a9715ea6ef478f384f3e520a9cb3 Parents: 4829bbb Author: Andrew Gaul <[email protected]> Authored: Tue Oct 20 14:01:32 2015 -0700 Committer: Andrew Gaul <[email protected]> Committed: Tue Oct 20 14:01:32 2015 -0700 ---------------------------------------------------------------------- .../blobstore/config/LocalBlobStore.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/e0c959c2/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java index 1f0cca5..9c65be7 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java @@ -829,13 +829,19 @@ public final class LocalBlobStore implements BlobStore { @Override public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) { ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder(); - PageSet<? extends StorageMetadata> pageSet = list(mpu.containerName(), - new ListContainerOptions().prefix(mpu.blobName() + "-").recursive()); - // TODO: pagination - for (StorageMetadata sm : pageSet) { - int partNumber = Integer.parseInt(sm.getName().substring((mpu.blobName() + "-").length())); - long partSize = -1; // TODO: could call getContentMetadata but did not above - parts.add(MultipartPart.create(partNumber, partSize, sm.getETag())); + ListContainerOptions options = + new ListContainerOptions().prefix(mpu.blobName() + "-").recursive(); + while (true) { + PageSet<? extends StorageMetadata> pageSet = list(mpu.containerName(), options); + for (StorageMetadata sm : pageSet) { + int partNumber = Integer.parseInt(sm.getName().substring((mpu.blobName() + "-").length())); + long partSize = -1; // TODO: could call getContentMetadata but did not above + parts.add(MultipartPart.create(partNumber, partSize, sm.getETag())); + } + if (pageSet.isEmpty() || pageSet.getNextMarker() == null) { + break; + } + options.afterMarker(pageSet.getNextMarker()); } return parts.build(); }
