code: @Override
    public URI generateSharedAccessSignature(final CloudBlob cloudBlob, final SharedAccessBlobPolicy policy)
        throws IOException {
      try {
        final URI uri = cloudBlob.getStorageUri().getPrimaryUri();
  
        Map<String, String[]> queryString = PathUtility.parseQueryString(this.azureStorageContainerSASToken);
  
        UriQueryBuilder builder = new UriQueryBuilder();
        for (Map.Entry<String, String[]> entry : queryString.entrySet()) {
          for (String value : entry.getValue()) {
            builder.add(entry.getKey(), value);
          }
        }
  
        URI result = builder.addToURI(uri);
        LOG.log(Level.INFO, "Here's the URI: {0}", result);
  
        return result;
      } catch (StorageException | URISyntaxException e) {
        throw new IOException("Failed to generated a Shared Access Signature.", e);
      }
    }
docs: Generates a Shared Access Key URI for the given {@link CloudBlob}.
  @param cloudBlob   cloud blob to create a Shared Access Key URI for.
  @param policy      an instance of {@link SharedAccessBlobPolicy} that specifies permissions and signature's
  validity time period.
  @return            a Shared Access Key URI for the given {@link CloudBlob}.
  @throws IOException