Search code examples
node.jsazure-storage

(Azure Storage - nodeJS) Getting SAS policies that are applied on blob container and queue


I'm trying to get the expiration date of the SAS policies that are applied on blob container and queue. I'm able to get the information via powershell with the Get-AzStorageQueueStoredAccessPolicy and Get-AzStorageContainerStoredAccessPolicy but I cannot find a way to look a way to do the same via nodeJS.

I've went trough the MS node sdk for storage, i was able to find a way to setup the SAS policy but not to retrieve an existing one.

Do I need to go trough the ms graph?

Thank you for your help.


Solution

  • To get the access policies for a blob container, the method you would want to use is getAccessPolicy() which is in ContainerClient class.

    import {BlobServiceClient} from '@azure/storage-blob';
    
    const connectionString = "your-storage-account-connection-string";
    const containerName = "your-container-name";
    const blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
    const containerClient = blobServiceClient.getContainerClient(containerName);
    const accessPolicyResult = await containerClient.getAccessPolicy();
    console.log(accessPolicyResult.signedIdentifiers);//access policies are defined in "signedIdentifiers"
    

    Similarly to get the access policies for a queue, the method you would to use is getAccessPolicy() which is in QueueClient class.

    import {QueueServiceClient} from '@azure/storage-queue';
    
    const connectionString = "your-storage-account-connection-string";
    const queueName = "your-queue-name";
    const queueServiceClient = QueueServiceClient.fromConnectionString(connectionString);
    const queueClient = queueServiceClient.getQueueClient(queueName);
    const accessPolicyResult = await queueClient.getAccessPolicy();
    console.log(accessPolicyResult.signedIdentifiers);//access policies are defined in "signedIdentifiers"