public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { // use sorted set to order relative paths correctly SortedSet<StorageMetadata> contents = Sets.<StorageMetadata> newTreeSet(Iterables.transform(from, object2blobMd)); for (String prefix : from.getBlobPrefixes()) { contents.add(prefix2ResourceMd.apply(prefix)); } return new PageSetImpl<StorageMetadata>(contents, from.getNextMarker()); } }
@Override public List<MultipartUpload> listMultipartUploads(String container) { ImmutableList.Builder<MultipartUpload> builder = ImmutableList.builder(); String marker = null; while (true) { ListBlobsOptions options = new ListBlobsOptions().include(EnumSet.of(ListBlobsInclude.UNCOMMITTEDBLOBS)); if (marker != null) { options.marker(marker); } ListBlobsResponse response = sync.listBlobs(container, options); for (BlobProperties properties : response) { // only uncommitted blobs lack ETags if (properties.getETag() != null) { continue; } // TODO: bogus uploadId String uploadId = UUID.randomUUID().toString(); builder.add(MultipartUpload.create(properties.getContainer(), properties.getName(), uploadId, null, null)); } marker = response.getNextMarker(); if (marker == null) { break; } } return builder.build(); }
@Test(timeOut = 5 * 60 * 1000) public void testCreateContainer() throws Exception { boolean created = false; while (!created) { privateContainer = prefix + new SecureRandom().nextInt(); try { created = getApi().createContainer(privateContainer, withMetadata(ImmutableMultimap.of("foo", "bar"))); } catch (UndeclaredThrowableException e) { HttpResponseException htpe = (HttpResponseException) e.getCause().getCause(); if (htpe.getResponse().getStatusCode() == 409) continue; throw e; } } Set<ContainerProperties> response = getApi().listContainers(includeMetadata()); assert null != response; long containerCount = response.size(); assertTrue(containerCount >= 1); ListBlobsResponse list = getApi().listBlobs(privateContainer); assertEquals(list.getUrl(), URI.create(String.format("https://%s.blob.core.windows.net/%s", view.unwrap( AzureBlobApiMetadata.CONTEXT_TOKEN).getIdentity(), privateContainer))); // TODO .. check to see the container actually exists }
.prefix(object.getProperties().getName().substring(0, object.getProperties().getName().length() - 1)) .maxResults(1).includeMetadata()); assertEquals(response.size(), 1); assertEquals(Iterables.getOnlyElement(response).getName(), object.getProperties().getName()); assertEquals(Iterables.getOnlyElement(response).getMetadata(), ImmutableMap.of("mykey", "metadata-value"));
@Override public List<MultipartUpload> listMultipartUploads(String container) { ImmutableList.Builder<MultipartUpload> builder = ImmutableList.builder(); String marker = null; while (true) { ListBlobsOptions options = new ListBlobsOptions().include(EnumSet.of(ListBlobsInclude.UNCOMMITTEDBLOBS)); if (marker != null) { options.marker(marker); } ListBlobsResponse response = sync.listBlobs(container, options); for (BlobProperties properties : response) { // only uncommitted blobs lack ETags if (properties.getETag() != null) { continue; } // TODO: bogus uploadId String uploadId = UUID.randomUUID().toString(); builder.add(MultipartUpload.create(properties.getContainer(), properties.getName(), uploadId, null, null)); } marker = response.getNextMarker(); if (marker == null) { break; } } return builder.build(); }
@Test(timeOut = 5 * 60 * 1000) public void testCreateContainer() throws Exception { boolean created = false; while (!created) { // testListOwnedContainers requires a unique prefix privateContainer = CONTAINER_PREFIX + "unique-" + containerIndex.incrementAndGet(); try { created = getApi().createContainer(privateContainer, withMetadata(ImmutableMultimap.of("foo", "bar"))); } catch (UndeclaredThrowableException e) { HttpResponseException htpe = (HttpResponseException) e.getCause().getCause(); if (htpe.getResponse().getStatusCode() == 409) continue; throw e; } } Set<ContainerProperties> response = getApi().listContainers(includeMetadata()); assert null != response; long containerCount = response.size(); assertTrue(containerCount >= 1); ListBlobsResponse list = getApi().listBlobs(privateContainer); assertEquals(list.getUrl(), URI.create(String.format("https://%s.blob.core.windows.net/%s", view.unwrap().getIdentity(), privateContainer))); // TODO .. check to see the container actually exists }
.prefix(object.getProperties().getName().substring(0, object.getProperties().getName().length() - 1)) .maxResults(1).includeMetadata()); assertEquals(response.size(), 1); assertEquals(Iterables.getOnlyElement(response).getName(), object.getProperties().getName()); assertEquals(Iterables.getOnlyElement(response).getMetadata().size(), 2);
public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { // use sorted set to order relative paths correctly SortedSet<StorageMetadata> contents = Sets.<StorageMetadata> newTreeSet(Iterables.transform(from, object2blobMd)); for (String prefix : from.getBlobPrefixes()) { contents.add(prefix2ResourceMd.apply(prefix)); } return new PageSetImpl<StorageMetadata>(contents, from.getNextMarker()); } }
assertEquals(list.getUrl(), URI.create(String.format("https://%s.blob.core.windows.net/$root", view.unwrap( AzureBlobApiMetadata.CONTEXT_TOKEN).getIdentity())));
public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { Set<StorageMetadata> contents = Sets.<StorageMetadata> newHashSet(Iterables.transform(from, object2blobMd)); Map<String, StorageMetadata> nameToMd = Maps.uniqueIndex(contents, indexer); for (String prefix : from.getBlobPrefixes()) { prefix = prefix.endsWith("/") ? prefix.substring(0, prefix.lastIndexOf('/')) : prefix; if (!nameToMd.containsKey(prefix) || nameToMd.get(prefix).getType() != StorageType.RELATIVE_PATH) contents.add(prefix2ResourceMd.apply(prefix)); } return new PageSetImpl<StorageMetadata>(contents, from.getNextMarker()); } }
assertEquals(list.getUrl(), URI.create(String.format("https://%s.blob.core.windows.net/$root", view.unwrap().getIdentity())));
public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { Set<StorageMetadata> contents = Sets.<StorageMetadata> newHashSet(Iterables.transform(from, object2blobMd)); Map<String, StorageMetadata> nameToMd = Maps.uniqueIndex(contents, indexer); for (String prefix : from.getBlobPrefixes()) { prefix = prefix.endsWith("/") ? prefix.substring(0, prefix.lastIndexOf('/')) : prefix; if (!nameToMd.containsKey(prefix) || nameToMd.get(prefix).getType() != StorageType.RELATIVE_PATH) contents.add(prefix2ResourceMd.apply(prefix)); } return new PageSetImpl<StorageMetadata>(contents, from.getNextMarker()); } }
public PageSet<? extends StorageMetadata> apply(ListBlobsResponse from) { Set<StorageMetadata> contents = Sets.<StorageMetadata> newHashSet(Iterables.transform(from, object2blobMd)); Map<String, StorageMetadata> nameToMd = Maps.uniqueIndex(contents, indexer); for (String prefix : from.getBlobPrefixes()) { prefix = prefix.endsWith("/") ? prefix.substring(0, prefix.lastIndexOf('/')) : prefix; if (!nameToMd.containsKey(prefix) || nameToMd.get(prefix).getType() != StorageType.RELATIVE_PATH) contents.add(prefix2ResourceMd.apply(prefix)); } return new PageSetImpl<StorageMetadata>(contents, from.getNextMarker()); } }