/** * Returns a shared access signature for the container. Note this does not contain the leading "?". * * @param policy * An {@link SharedAccessBlobPolicy} object that represents the access policy for the shared access * signature. * @param groupPolicyIdentifier * A <code>String</code> which represents the container-level access policy. * * @return A <code>String</code> which represents a shared access signature for the container. * * @throws StorageException * If a storage service error occurred. * @throws InvalidKeyException * If the key is invalid. */ public String generateSharedAccessSignature(final SharedAccessBlobPolicy policy, final String groupPolicyIdentifier) throws InvalidKeyException, StorageException { return this.generateSharedAccessSignature( policy, groupPolicyIdentifier, null /* IP range */, null /* protocols */); }
/** * Returns a shared access signature for the container. Note this does not contain the leading "?". * * @param policy * An {@link SharedAccessBlobPolicy} object that represents the access policy for the shared access * signature. * @param groupPolicyIdentifier * A <code>String</code> which represents the container-level access policy. * * @return A <code>String</code> which represents a shared access signature for the container. * * @throws StorageException * If a storage service error occurred. * @throws InvalidKeyException * If the key is invalid. */ public String generateSharedAccessSignature(final SharedAccessBlobPolicy policy, final String groupPolicyIdentifier) throws InvalidKeyException, StorageException { return this.generateSharedAccessSignature( policy, groupPolicyIdentifier, null /* IP range */, null /* protocols */); }
protected String generateSASToken(CloudBlobContainer blobContainer, int timeSpan) { Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC")); cal.setTime(new Date()); cal.add(Calendar.MINUTE, timeSpan); SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); policy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ)); policy.setSharedAccessExpiryTime(cal.getTime()); try { String token = blobContainer.generateSharedAccessSignature(policy, null); return token; } catch(Exception e) { throw new GradleException("could not generate SASToken: " + e.getMessage()); } }
private static String getContainerSasUri(CloudBlobContainer container) throws InvalidKeyException, StorageException { //Set the expiry time and permissions for the container. //In this case no start time is specified, so the shared access signature becomes valid immediately. SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy(); Date expirationDate = Date.from(Instant.now().plus(Duration.ofDays(1))); sasConstraints.setSharedAccessExpiryTime(expirationDate); EnumSet<SharedAccessBlobPermissions> permissions = EnumSet.of( SharedAccessBlobPermissions.WRITE, SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.DELETE); sasConstraints.setPermissions(permissions); //Generate the shared access signature on the container, setting the constraints directly on the signature. String sasContainerToken = container.generateSharedAccessSignature(sasConstraints, null); //Return the URI string for the container, including the SAS token. return container.getUri() + "?" + sasContainerToken; } }
public static String getContainerSasUri(CloudBlobContainer container) throws InvalidKeyException, StorageException { //Set the expiry time and permissions for the container. //In this case no start time is specified, so the shared access signature becomes valid immediately. SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy(); Date expirationDate = Date.from(Instant.now().plus(Duration.ofDays(1))); sasConstraints.setSharedAccessExpiryTime(expirationDate); EnumSet<SharedAccessBlobPermissions> permissions = EnumSet.of( SharedAccessBlobPermissions.WRITE, SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.DELETE); sasConstraints.setPermissions(permissions); //Generate the shared access signature on the container, setting the constraints directly on the signature. String sasContainerToken = container.generateSharedAccessSignature(sasConstraints, null); //Return the URI string for the container, including the SAS token. return container.getUri() + "?" + sasContainerToken; } }
BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); container.uploadPermissions(containerPermissions); String signature = container.generateSharedAccessSignature(sharedAccessBlobPolicy, null); return blobLink + "?" + signature;
container.uploadPermissions(containerPermissions); String sas = container.generateSharedAccessSignature( new SharedAccessBlobPolicy(),"heath"); System.out.println("The stored access policy signature:");
String sas = container.generateSharedAccessSignature(sasPolicy, null);
String sas = container.generateSharedAccessSignature(sasPolicy, null);
String sasToken = containers.get(bits).generateSharedAccessSignature(null, "readwrite" + bits); permissions = EnumSet.noneOf(SharedAccessBlobPermissions.class); addPermissions(permissions, bits);
Thread.sleep(30000); String sasToken = this.container.generateSharedAccessSignature(policy, null); String sasToken2 = this.container.generateSharedAccessSignature(policy2, null); CloudBlobContainer sasContainer = new CloudBlobContainer(PathUtility.addToQuery(this.container.getUri(), sasToken2));
Thread.sleep(30000); String containerReadListSas = this.container.generateSharedAccessSignature(sp2, null); CloudBlobContainer readListContainer = new CloudBlobContainer(PathUtility.addToQuery(this.container.getUri(), containerReadListSas)); readListContainer.getStorageUri(), this.container.generateSharedAccessSignature(null, "readlist"))); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), containerFromUri.getServiceClient() .getCredentials().getClass().toString()); this.container.generateSharedAccessSignature(null, "readlist")); CloudBlobClient bClient = new CloudBlobClient(this.container.getServiceClient().getStorageUri(), creds);
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testCloudBlobContainerReferenceFromServerSAS() throws StorageException, URISyntaxException, IOException, InvalidKeyException { this.container.create(); CloudBlob blob = BlobTestHelper.uploadNewBlob(this.container, BlobType.BLOCK_BLOB, null, 1024, null); SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); Calendar now = Calendar.getInstance(); now.add(Calendar.MINUTE, 10); policy.setSharedAccessExpiryTime(now.getTime()); policy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ)); String token = this.container.generateSharedAccessSignature(policy, null); CloudBlobContainer containerSAS = new CloudBlobContainer(this.container.getStorageUri(), new StorageCredentialsSharedAccessSignature(token)); CloudBlob blobRef = containerSAS.getBlobReferenceFromServer(blob.getName()); assertEquals(blob.getClass(), blobRef.getClass()); assertEquals(blob.getUri(), blobRef.getUri()); }
String containerSasHttps = this.container.generateSharedAccessSignature( sp, null, null, SharedAccessProtocols.HTTPS_ONLY); String containerSasHttp = this.container.generateSharedAccessSignature( sp, null, null, SharedAccessProtocols.HTTPS_HTTP); final URI httpUri = new URI("http", this.container.getUri().getAuthority(), this.container.getUri().getPath(),
String containerSasNone = this.container.generateSharedAccessSignature(sp, null, range2, null); CloudBlobContainer noneContainer = new CloudBlobContainer(PathUtility.addToQuery(this.container.getUri(), containerSasNone)); String containerSasOne = this.container.generateSharedAccessSignature(sp, null, sourceIP, null); CloudBlobContainer oneContainer = new CloudBlobContainer(PathUtility.addToQuery(this.container.getUri(), containerSasOne)); String containerSasAll = this.container.generateSharedAccessSignature(sp, null, range1, null); CloudBlobContainer allContainer = new CloudBlobContainer(PathUtility.addToQuery(this.container.getUri(), containerSasAll));