code: public function generateSharedAccessUrl($containerName = '', $blobName = '', $resource = 'b', $permissions = 'r', $start = '', $expiry = '', $identifier = '')
      {
          Assertion::notEmpty($containerName, 'Container name is not specified');
          self::assertValidContainerName($containerName);
  
          $resourceName = self::createResourceName($containerName , $blobName);
  
          return $this->getBaseUrl() . '/' . $resourceName . '?' .
              $this->sharedAccessSignatureCredentials->createSignedQueryString(
              $resourceName,
                      '',
              $resource,
              $permissions,
              $start,
              $expiry,
              $identifier
          );
      }
docs: Generate shared access URL
  
  @param string $containerName  Container name
  @param string $blobName       Blob name
  @param string $resource       Signed resource - container (c) - blob (b)
  @param string $permissions    Signed permissions - read (r), write (w), delete (d) and list (l)
  @param string $start          The time at which the Shared Access Signature becomes valid.
  @param string $expiry         The time at which the Shared Access Signature becomes invalid.
  @param string $identifier     Signed identifier
  @return string