code: @Override
    public URI generateSharedAccessSignature(final CloudBlob cloudBlob, final SharedAccessBlobPolicy policy)
        throws IOException {
      try {
        final String sas = cloudBlob.generateSharedAccessSignature(policy, null);
        final String uri = cloudBlob.getStorageUri().getPrimaryUri().toString();
        return new URI(uri + "?" + sas);
      } catch (StorageException | InvalidKeyException | 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