Map listBlobsByPrefix()

in src/main/java/org/elasticsearch/aliyun/oss/blobstore/OssBlobStore.java [98:112]


    Map<String, BlobMetaData> listBlobsByPrefix(String keyPath, String prefix) throws IOException {
        MapBuilder<String, BlobMetaData> blobsBuilder = MapBuilder.newMapBuilder();
        String actualPrefix = keyPath + (prefix == null ? StringUtils.EMPTY : prefix);
        String nextMarker = null;
        ObjectListing blobs;
        do {
            blobs = listBlobs(actualPrefix, nextMarker);
            for (OSSObjectSummary summary : blobs.getObjectSummaries()) {
                String blobName = summary.getKey().substring(keyPath.length());
                blobsBuilder.put(blobName, new PlainBlobMetaData(blobName, summary.getSize()));
            }
            nextMarker = blobs.getNextMarker();
        } while (blobs.isTruncated());
        return blobsBuilder.immutableMap();
    }