private List<CloudAppendBlob> getJournalBlobs() throws IOException { try { List<CloudAppendBlob> result = new ArrayList<>(); for (ListBlobItem b : directory.listBlobs(journalNamePrefix)) { if (b instanceof CloudAppendBlob) { result.add((CloudAppendBlob) b); } else { log.warn("Invalid blob type: {} {}", b.getUri(), b.getClass()); } } result.sort(Comparator.<CloudAppendBlob, String>comparing(AzureUtilities::getName).reversed()); return result; } catch (URISyntaxException | StorageException e) { throw new IOException(e); } }
if (this.endDate == null || (current.getParent().getPrefix()).compareTo(this.endPrefix) <= 0) { if (isCorrectLogType(current)) { this.pendingItem = current;
private List<CloudAppendBlob> getJournalBlobs() throws IOException { try { List<CloudAppendBlob> result = new ArrayList<>(); for (ListBlobItem b : directory.listBlobs(journalNamePrefix)) { if (b instanceof CloudAppendBlob) { result.add((CloudAppendBlob) b); } else { log.warn("Invalid blob type: {} {}", b.getUri(), b.getClass()); } } result.sort(Comparator.<CloudAppendBlob, String>comparing(AzureUtilities::getName).reversed()); return result; } catch (URISyntaxException | StorageException e) { throw new IOException(e); } }
if (this.endDate == null || (current.getParent().getPrefix()).compareTo(this.endPrefix) <= 0) { if (isCorrectLogType(current)) { this.pendingItem = current;
@NotNull public static String listBlobs(@NotNull final StorageInputs inputs) throws Exception { final CloudBlobClient blobClient = getCloudBlobClient(inputs); final CloudBlobContainer container = blobClient.getContainerReference(inputs.getContainerName()); final List<String> blobList = new ArrayList<>(); for (final ListBlobItem blobItem : container.listBlobs()) { final String path = blobItem.getUri().getPath(); blobList.add(path.substring(path.lastIndexOf(FORWARD_SLASH) + 1)); } return StringUtilities.join(blobList, COMMA); }
protected void deleteBlobDir(CloudBlobContainer container, String path) throws StorageException { for (ListBlobItem blobItem : container.listBlobs(path)) { if (blobItem instanceof CloudBlockBlob) { ((CloudBlockBlob)blobItem).deleteIfExists(); } else { String subdir = blobItem.getUri().getPath().replaceAll("^/[^/]*?/", ""); deleteBlobDir(container, subdir); } } }
@Override public CompletableFuture<List<BaseLease>> getAllLeases() { CompletableFuture<List<BaseLease>> future = null; try { ArrayList<BaseLease> infos = new ArrayList<BaseLease>(); EnumSet<BlobListingDetails> details = EnumSet.of(BlobListingDetails.METADATA); Iterable<ListBlobItem> leaseBlobs = this.consumerGroupDirectory.listBlobs("", true, details, this.leaseOperationOptions, null); leaseBlobs.forEach((lbi) -> { CloudBlob blob = (CloudBlob)lbi; BlobProperties bp = blob.getProperties(); HashMap<String, String> metadata = blob.getMetadata(); Path p = Paths.get(lbi.getUri().getPath()); infos.add(new BaseLease(p.getFileName().toString(), metadata.get(AzureStorageCheckpointLeaseManager.METADATA_OWNER_NAME), (bp.getLeaseState() == LeaseState.LEASED))); }); future = CompletableFuture.completedFuture(infos); } catch (URISyntaxException | StorageException e) { TRACE_LOGGER.warn(this.hostContext.withHost("Failure while getting lease state details"), e); future = new CompletableFuture<List<BaseLease>>(); future.completeExceptionally(LoggingUtils.wrapException(e, EventProcessorHostActionStrings.GETTING_LEASE)); } return future; }
private void testPrefixListingWithDirectory(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { // check output of list blobs with TopDir1 with prefix CloudBlobDirectory directory = container.getDirectoryReference("TopDir1"); Iterable<ListBlobItem> results = directory.listBlobs("Mid"); ArrayList<ListBlobItem> list1 = new ArrayList<ListBlobItem>(); Iterator<ListBlobItem> iter = results.iterator(); while (iter.hasNext()) { list1.add(iter.next()); } assertEquals(2, list1.size()); ListBlobItem get12 = list1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); ListBlobItem get13 = list1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); }
private void testPrefixListingWithDirectorySegmented(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { ResultContinuation token = null; CloudBlobDirectory directory = container.getDirectoryReference("TopDir1"); ArrayList<ListBlobItem> list1 = new ArrayList<ListBlobItem>(); do { ResultSegment<ListBlobItem> result1 = directory.listBlobsSegmented("Mid"); token = result1.getContinuationToken(); list1.addAll(result1.getResults()); } while (token != null); assertEquals(2, list1.size()); ListBlobItem get12 = list1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); ListBlobItem get13 = list1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); }
private void testListingWithDirectory(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { // check output of list blobs with TopDir1 with prefix CloudBlobDirectory directory = container.getDirectoryReference("TopDir1" + delimiter + "MidDir1" + delimiter); Iterable<ListBlobItem> results = directory.listBlobs(); ArrayList<ListBlobItem> list1 = new ArrayList<ListBlobItem>(); Iterator<ListBlobItem> iter = results.iterator(); while (iter.hasNext()) { list1.add(iter.next()); } assertEquals(2, list1.size()); ListBlobItem get21 = list1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter + "EndDir1" + delimiter, null, null), get21.getUri()); ListBlobItem get22 = list1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter + "EndDir2" + delimiter, null, null), get22.getUri()); }
private void testListingWithDirectorySegmented(String delimiter, CloudBlobContainer container) throws URISyntaxException, StorageException { ResultContinuation token = null; CloudBlobDirectory directory = container.getDirectoryReference("TopDir1"); ArrayList<ListBlobItem> list1 = new ArrayList<ListBlobItem>(); do { ResultSegment<ListBlobItem> result1 = directory.listBlobsSegmented("Mid"); token = result1.getContinuationToken(); list1.addAll(result1.getResults()); } while (token != null); assertEquals(2, list1.size()); ListBlobItem get21 = list1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get21.getUri()); ListBlobItem get22 = list1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get22.getUri()); }
.getPath() + "/TopDir1" + delimiter + "Blob1", null, null), get11.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter + "EndDir1" + delimiter + "EndBlob1", null, null), get21.getUri()); null), get22.getUri());
|| blobItem instanceof CloudPageBlobWrapper) { LOG.debug("Found blob as a directory-using this file under it to infer its properties {}", blobItem.getUri());
private void testMultipleDelimiters(String delimiter, CloudBlobContainer container) throws StorageException, URISyntaxException { populateContainer(container, delimiter); populateContainer(container, "*"); populateContainer(container, "#"); Iterable<ListBlobItem> list1 = container.listBlobs("TopDir1" + delimiter, false, EnumSet.noneOf(BlobListingDetails.class), null, null); Iterator<ListBlobItem> iter = list1.iterator(); ArrayList<ListBlobItem> simpleList1 = new ArrayList<ListBlobItem>(); while (iter.hasNext()) { simpleList1.add(iter.next()); } assertEquals(3, simpleList1.size()); ListBlobItem get11 = simpleList1.get(0); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "Blob1", null, null), get11.getUri()); ListBlobItem get12 = simpleList1.get(1); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); ListBlobItem get13 = simpleList1.get(2); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); CloudBlobDirectory directory = container.getDirectoryReference("TopDir1" + delimiter); CloudBlobDirectory subDirectory = directory.getDirectoryReference("MidDir1" + delimiter); CloudBlobDirectory parent = subDirectory.getParent(); assertEquals(parent.getPrefix(), directory.getPrefix()); assertEquals(parent.getUri(), directory.getUri()); }
.getPath() + "/TopDir1" + delimiter + "Blob1", null, null), get11.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter + "EndDir1" + delimiter + "EndBlob1", null, null), get21.getUri()); null), get22.getUri());
.getPath() + "/TopDir1" + delimiter + "Blob1", null, null), get11.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter, null, null), get12.getUri()); .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter, null, null), get13.getUri()); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter + "EndDir1" + delimiter + "EndBlob1", null, null), get21.getUri()); null), get22.getUri()); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir1" + delimiter + "EndDir1" + delimiter, null, null), get31.getUri()); get32.getUri()); assertEquals(new URI(container.getUri().getScheme(), container.getUri().getAuthority(), container.getUri() .getPath() + "/TopDir1" + delimiter + "MidDir2" + delimiter + "EndDir1" + delimiter + "EndBlob1", null, null), get41.getUri()); null), get42.getUri());
PreferencesFactory.get().getInteger("azure.listing.chunksize"), token, options, context); for(ListBlobItem object : result.getResults()) { if(new Path(object.getUri().getPath(), EnumSet.of(Path.Type.directory)).equals(directory)) { continue; final Path child = new Path(directory, PathNormalizer.name(object.getUri().getPath()), types, attributes); children.add(child);
act.outputText(view, blobItem.getUri().toString());