@Test @Category(SlowTests.class) public void testBlobSaS() throws InvalidKeyException, IllegalArgumentException, StorageException, URISyntaxException, InterruptedException { SharedAccessBlobPolicy sp = createSharedAccessPolicy( EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.LIST), 3600); BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readperm", sp); this.container.uploadPermissions(perms); Thread.sleep(30000); CloudBlockBlob sasBlob = new CloudBlockBlob(new URI(this.blob.getUri().toString() + "?" + this.blob.generateSharedAccessSignature(null, "readperm"))); sasBlob.download(new ByteArrayOutputStream()); // do not give the client and check that the new blob's client has the correct perms CloudBlob blobFromUri = new CloudBlockBlob(PathUtility.addToQuery(this.blob.getStorageUri(), this.blob.generateSharedAccessSignature(null, "readperm"))); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), blobFromUri.getServiceClient() .getCredentials().getClass().toString()); // create credentials from sas StorageCredentials creds = new StorageCredentialsSharedAccessSignature( this.blob.generateSharedAccessSignature(null, "readperm")); CloudBlobClient bClient = new CloudBlobClient(sasBlob.getServiceClient().getStorageUri(), creds); CloudBlockBlob blobFromClient = bClient.getContainerReference(this.blob.getContainer().getName()) .getBlockBlobReference(this.blob.getName()); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), blobFromClient.getServiceClient() .getCredentials().getClass().toString()); assertEquals(bClient, blobFromClient.getServiceClient()); }
CloudBlockBlob blockSnapshotDir1 = dir1.getBlockBlobReference("BlockBlob", blockSnapshot.getSnapshotID()); assertEquals(blockSnapshot.getName(), blockSnapshotDir1.getName()); assertEquals(dir1.getContainer().getName(), blockSnapshotDir1.getContainer().getName()); assertEquals(dir1.getServiceClient().getEndpoint().toString(), blockSnapshotDir1.getServiceClient() .getEndpoint().toString());
assertEquals(blobUri.getPrimaryUri(), blockBlob.getUri()); assertEquals(subdirectoryUri, blockBlob.getParent().getStorageUri()); assertEquals(containerUri, blockBlob.getContainer().getStorageUri()); assertEquals(endpoint, blockBlob.getServiceClient().getStorageUri()); assertEquals(blobUri.getPrimaryUri(), blockBlob.getUri()); assertEquals(subdirectoryUri, blockBlob.getParent().getStorageUri()); assertEquals(containerUri, blockBlob.getContainer().getStorageUri()); assertEquals(endpoint, blockBlob.getServiceClient().getStorageUri());
private static void assertCreatedAndListedBlobsEquivalent(CloudBlockBlob createdBlob, CloudBlockBlob listedBlob, int length) throws StorageException, URISyntaxException{ assertEquals(createdBlob.getContainer().getName(), listedBlob.getContainer().getName()); assertEquals(createdBlob.getMetadata(), listedBlob.getMetadata()); assertEquals(createdBlob.getName(), listedBlob.getName());
/** * Validate container references * * @throws StorageException * @throws URISyntaxException */ @Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testCloudBlobContainerReference() throws StorageException, URISyntaxException{ CloudBlobClient client = BlobTestHelper.createCloudBlobClient(); CloudBlobContainer container = client.getContainerReference("container"); CloudBlockBlob blockBlob = container.getBlockBlobReference("directory1/blob1"); CloudPageBlob pageBlob = container.getPageBlobReference("directory2/blob2"); CloudBlobDirectory directory = container.getDirectoryReference("directory3"); CloudBlobDirectory directory2 = directory.getDirectoryReference("directory4"); assertEquals(container.getStorageUri().toString(), blockBlob.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), pageBlob.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory2.getContainer().getStorageUri().toString()); assertEquals(container.getStorageUri().toString(), directory2.getParent().getContainer().getStorageUri() .toString()); assertEquals(container.getStorageUri().toString(), blockBlob.getParent().getContainer().getStorageUri() .toString()); assertEquals(container.getStorageUri().toString(), blockBlob.getParent().getContainer().getStorageUri() .toString()); }