private static async getBlobSasParams()

in src/publishers/websiteRunFromPackageDeploy.ts [72:95]


    private static async getBlobSasParams(accountName: string, blobName: string, containerName: string, context: IActionContext): Promise<string> {
        Logger.Info("Looking up storage account Keys");

        const storageClient: StorageManagementClient = new StorageManagementClient(new DefaultAzureCredential(), context.endpoint.subscriptionID);
        const keys: StorageAccountListKeysResult = await storageClient.storageAccounts.listKeys(context.resourceGroupName, accountName);
        const key = keys.keys?.[0].value;

        const now: Date = new Date();
        const startTime: Date = new Date();
        startTime.setMinutes(now.getMinutes() - 5);
        const expiryTime: Date = new Date();
        expiryTime.setFullYear(now.getFullYear() + 1);

        const sasOptions: BlobSASSignatureValues = {
            blobName,
            containerName,
            permissions: BlobSASPermissions.parse("r"),
            protocol: SASProtocol.Https,
            startsOn: startTime,
            expiresOn: expiryTime
        };
        const sasParams: SASQueryParameters = generateBlobSASQueryParameters(sasOptions, new StorageSharedKeyCredential(accountName, key));
        return sasParams.toString();
    }