SharedAccessBlobPermissions.WRITE, SharedAccessBlobPermissions.DELETE, SharedAccessBlobPermissions.LIST)); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); containerPermissions.setPublicAccess(BlobContainerPublicAccessType.OFF); containerPermissions.getSharedAccessPolicies().put("heath", policy); container.uploadPermissions(containerPermissions);
@Override public HttpURLConnection buildRequest(CloudBlobClient client, CloudBlobContainer container, OperationContext context) throws Exception { this.setSendStream(new ByteArrayInputStream(aclBytes)); this.setLength((long) aclBytes.length); return BlobRequest.setAcl(container.getTransformedAddress().getUri(this.getCurrentLocation()), options, context, accessCondition, permissions.getPublicAccess()); }
/** * 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; }
BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readwrite", policy); this.container.uploadPermissions(perms); Thread.sleep(30000); perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("read", policy2); this.container.uploadPermissions(perms); Thread.sleep(30000);
BlobContainerPublicAccessType[] accessTypes = {BlobContainerPublicAccessType.BLOB, BlobContainerPublicAccessType.CONTAINER, BlobContainerPublicAccessType.OFF}; BlobContainerPermissions permissions = new BlobContainerPermissions(); for (BlobContainerPublicAccessType accessType : accessTypes) { permissions.setPublicAccess(accessType); container.uploadPermissions(permissions); assertEquals(accessType, container.properties.getPublicAccess()); assertEquals(accessType, container3.downloadPermissions().getPublicAccess());
assertTrue(BlobContainerPublicAccessType.OFF.equals(permissions.getPublicAccess())); assertEquals(0, permissions.getSharedAccessPolicies().size()); final Date expiry = cal.getTime(); permissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER); SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); policy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.CREATE)); policy.setSharedAccessStartTime(start); policy.setSharedAccessExpiryTime(expiry); permissions.getSharedAccessPolicies().put("key1", policy); permissions.getSharedAccessPolicies().clear(); this.container.uploadPermissions(permissions); Thread.sleep(30000);
/** * Creates an instance of the <code>BlobContainerPermissions</code> class. */ public BlobContainerPermissions() { super(); this.setPublicAccess(BlobContainerPublicAccessType.OFF); }
private static void assertPermissionsEqual(BlobContainerPermissions expected, BlobContainerPermissions actual) { assertEquals(expected.getPublicAccess(), actual.getPublicAccess()); HashMap<String, SharedAccessBlobPolicy> expectedPolicies = expected.getSharedAccessPolicies(); HashMap<String, SharedAccessBlobPolicy> actualPolicies = actual.getSharedAccessPolicies(); assertEquals("SharedAccessPolicies.Count", expectedPolicies.size(), actualPolicies.size()); for (String name : expectedPolicies.keySet()) { assertTrue("Key" + name + " doesn't exist", actualPolicies.containsKey(name)); SharedAccessBlobPolicy expectedPolicy = expectedPolicies.get(name); SharedAccessBlobPolicy actualPolicy = actualPolicies.get(name); assertEquals("Policy: " + name + "\tPermissions\n", expectedPolicy.getPermissions().toString(), actualPolicy.getPermissions().toString()); assertEquals("Policy: " + name + "\tStartDate\n", expectedPolicy.getSharedAccessStartTime().toString(), actualPolicy.getSharedAccessStartTime().toString()); assertEquals("Policy: " + name + "\tExpireDate\n", expectedPolicy.getSharedAccessExpiryTime().toString(), actualPolicy.getSharedAccessExpiryTime().toString()); } }
sharedAccessBlobPolicy.setSharedAccessExpiryTime(calendar.getTime()); sharedAccessBlobPolicy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ)); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); container.uploadPermissions(containerPermissions); String signature = container.generateSharedAccessSignature(sharedAccessBlobPolicy, null);
@Override public BlobContainerPermissions postProcessResponse(HttpURLConnection connection, CloudBlobContainer container, CloudBlobClient client, OperationContext context, BlobContainerPermissions containerAcl) throws Exception { HashMap<String, SharedAccessBlobPolicy> accessIds = SharedAccessPolicyHandler.getAccessIdentifiers(this .getConnection().getInputStream(), SharedAccessBlobPolicy.class); for (final String key : accessIds.keySet()) { containerAcl.getSharedAccessPolicies().put(key, accessIds.get(key)); } return containerAcl; } };
/** * 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; }
addPermissions(permissions, bits); BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readwrite" + bits, createSharedAccessPolicy(permissions, 3600)); containers.get(bits).uploadPermissions(perms);
BlobContainerPermissions permissions = containerRef.downloadPermissions(); assertEquals(accessType, containerRef.properties.getPublicAccess()); assertEquals(accessType, permissions.getPublicAccess()); assertEquals(BlobContainerPublicAccessType.OFF, container2.properties.getPublicAccess()); BlobContainerPermissions permissions2 = new BlobContainerPermissions(); permissions2.setPublicAccess(accessType); container2.uploadPermissions(permissions); assertEquals(accessType, container2.properties.getPublicAccess());
/** * Creates an instance of the <code>BlobContainerPermissions</code> class. */ public BlobContainerPermissions() { super(); this.setPublicAccess(BlobContainerPublicAccessType.OFF); }
@Override public BlobContainerPermissions postProcessResponse(HttpURLConnection connection, CloudBlobContainer container, CloudBlobClient client, OperationContext context, BlobContainerPermissions containerAcl) throws Exception { HashMap<String, SharedAccessBlobPolicy> accessIds = SharedAccessPolicyHandler.getAccessIdentifiers(this .getConnection().getInputStream(), SharedAccessBlobPolicy.class); for (final String key : accessIds.keySet()) { containerAcl.getSharedAccessPolicies().put(key, accessIds.get(key)); } return containerAcl; } };
BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); .setPublicAccess(BlobContainerPublicAccessType.CONTAINER); containerPermissions.getSharedAccessPolicies().put("testwasbpolicy", sasPolicy); container.uploadPermissions(containerPermissions);
/** * 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); } }
expectedPermissions = new BlobContainerPermissions(); testPermissions = this.container.downloadPermissions(); assertPermissionsEqual(expectedPermissions, testPermissions); expectedPermissions.getSharedAccessPolicies().put(UUID.randomUUID().toString(), policy1);
@Override public HttpURLConnection buildRequest(CloudBlobClient client, CloudBlobContainer container, OperationContext context) throws Exception { this.setSendStream(new ByteArrayInputStream(aclBytes)); this.setLength((long) aclBytes.length); return BlobRequest.setAcl(container.getTransformedAddress().getUri(this.getCurrentLocation()), options, context, accessCondition, permissions.getPublicAccess()); }
@Override public void setPermission(final Path file, final Acl acl) throws BackgroundException { try { if(containerService.isContainer(file)) { final CloudBlobContainer container = session.getClient() .getContainerReference(containerService.getContainer(file).getName()); final BlobContainerPermissions permissions = container.downloadPermissions(null, null, context); for(Acl.UserAndRole userAndRole : acl.asList()) { if(userAndRole.getUser() instanceof Acl.GroupUser) { if(userAndRole.getUser().getIdentifier().equals(Acl.GroupUser.EVERYONE)) { permissions.setPublicAccess(BlobContainerPublicAccessType.BLOB); } } } container.uploadPermissions(permissions, null, null, context); } } catch(URISyntaxException e) { throw new NotfoundException(e.getMessage(), e); } catch(StorageException e) { throw new AzureExceptionMappingService().map("Cannot change permissions of {0}", e, file); } } }