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
        );
    }