/** * Converts the ACL string to a BlobContainerPermissions object. * * @param aclString * A <code>String</code> which specifies the ACLs to convert. * * @return A {@link BlobContainerPermissions} object which represents the ACLs. */ static BlobContainerPermissions getContainerAcl(final String aclString) { BlobContainerPublicAccessType accessType = BlobContainerPublicAccessType.parse(aclString); final BlobContainerPermissions retVal = new BlobContainerPermissions(); retVal.setPublicAccess(accessType); return retVal; }
/** * Converts the ACL string to a BlobContainerPermissions object. * * @param aclString * A <code>String</code> which specifies the ACLs to convert. * * @return A {@link BlobContainerPermissions} object which represents the ACLs. */ static BlobContainerPermissions getContainerAcl(final String aclString) { BlobContainerPublicAccessType accessType = BlobContainerPublicAccessType.parse(aclString); final BlobContainerPermissions retVal = new BlobContainerPermissions(); retVal.setPublicAccess(accessType); return retVal; }
sharedAccessBlobPolicy.setSharedAccessExpiryTime(calendar.getTime()); sharedAccessBlobPolicy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ)); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); container.uploadPermissions(containerPermissions); String signature = container.generateSharedAccessSignature(sharedAccessBlobPolicy, null);
/** * Create a connection to Azure Blob file storage system */ private void connect(String protocol, String accountName, String accountKey, String bucketName) { if (bucketName == null || bucketName.trim().isEmpty()) throw new ConfigurationException("Defined Azure Blog bucket is invalid."); //container name MUST be lowercase bucketName = bucketName.toLowerCase(); String connectionString = MessageFormat.format(CONNECTION_PATTERN, protocol, accountName, accountKey); try { CloudStorageAccount blobAccount = CloudStorageAccount.parse(connectionString); this.blobClient = blobAccount.createCloudBlobClient(); this.blobContainer = blobClient.getContainerReference(bucketName); boolean isBucketNotExist = blobContainer.createIfNotExists(); if (isBucketNotExist) log.info("New Azure Blob container created: " + bucketName); //Set access to public for blob resource BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); containerPermissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER); blobContainer.uploadPermissions(containerPermissions); } catch (Exception exception) { log.error(exception.getMessage(), exception); throw new ConfigurationException(exception); } }
SharedAccessBlobPermissions.WRITE, SharedAccessBlobPermissions.DELETE, SharedAccessBlobPermissions.LIST)); BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
addPermissions(permissions, bits); BlobContainerPermissions perms = new BlobContainerPermissions();
@Test @Category(SlowTests.class) public void testContainerPublicAccess() throws StorageException, IOException, URISyntaxException, InterruptedException { CloudBlockBlob testBlockBlob = (CloudBlockBlob) BlobTestHelper.uploadNewBlob( this.container, BlobType.BLOCK_BLOB, "blockblob", 64, null); CloudPageBlob testPageBlob = (CloudPageBlob) BlobTestHelper.uploadNewBlob( this.container, BlobType.PAGE_BLOB, "pageblob", 512, null); BlobContainerPermissions permissions = new BlobContainerPermissions(); permissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER); this.container.uploadPermissions(permissions); Thread.sleep(35000); testAccess(null, EnumSet.of(SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.READ), null, this.container, testBlockBlob); testAccess(null, EnumSet.of(SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.READ), null, this.container, testPageBlob); permissions.setPublicAccess(BlobContainerPublicAccessType.BLOB); this.container.uploadPermissions(permissions); Thread.sleep(30000); testAccess(null, EnumSet.of(SharedAccessBlobPermissions.READ), null, this.container, testBlockBlob); testAccess(null, EnumSet.of(SharedAccessBlobPermissions.READ), null, this.container, testPageBlob); }
BlobContainerPermissions perms = new BlobContainerPermissions(); perms = new BlobContainerPermissions();
expectedPermissions = new BlobContainerPermissions(); testPermissions = this.container.downloadPermissions(); assertPermissionsEqual(expectedPermissions, testPermissions);
@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()); }
SharedAccessBlobPolicy sp = createSharedAccessPolicy(EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.WRITE, SharedAccessBlobPermissions.LIST), 3600); BlobContainerPermissions perms = new BlobContainerPermissions();
SharedAccessBlobPolicy sp2 = createSharedAccessPolicy( EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.LIST), 3600); BlobContainerPermissions perms = new BlobContainerPermissions();
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
BlobContainerPermissions containerPermissions = new BlobContainerPermissions();
BlobContainerPublicAccessType[] accessTypes = {BlobContainerPublicAccessType.BLOB, BlobContainerPublicAccessType.CONTAINER, BlobContainerPublicAccessType.OFF}; BlobContainerPermissions permissions = new BlobContainerPermissions(); for (BlobContainerPublicAccessType accessType : accessTypes) { permissions.setPublicAccess(accessType);
policy.setSharedAccessExpiryTime(cal.getTime()); BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("read", policy); this.container.uploadPermissions(perms); policy.setSharedAccessExpiryTime(cal.getTime()); BlobContainerPermissions perms = new BlobContainerPermissions();
assertEquals(BlobContainerPublicAccessType.OFF, container2.properties.getPublicAccess()); BlobContainerPermissions permissions2 = new BlobContainerPermissions(); permissions2.setPublicAccess(accessType); container2.uploadPermissions(permissions);