Class EncryptedBlobClient

java.lang.Object
com.azure.storage.blob.specialized.BlobClientBase
com.azure.storage.blob.BlobClient
com.azure.storage.blob.specialized.cryptography.EncryptedBlobClient

public class EncryptedBlobClient extends com.azure.storage.blob.BlobClient
This class provides a client side encryption client that contains generic blob operations for Azure Storage Blobs. Operations allowed by the client are uploading, downloading and copying a blob, retrieving and setting metadata, retrieving and setting HTTP headers, and deleting and un-deleting a blob. The upload and download operation allow for encryption and decryption of the data client side. Note: setting metadata in particular is unsafe and should only be done so with caution.

Please refer to the Azure Docs For Client-Side Encryption for more information.

This client is instantiated through EncryptedBlobClientBuilder

For operations on a specific blob type (i.e. append, block, or page) use getAppendBlobClient, getBlockBlobClient, or getPageBlobAsyncClient to construct a client that allows blob specific operations. Note, these types do not support client-side encryption, though decryption is possible in case the associated block/page/append blob contains encrypted data.

Please refer to the Azure Docs for more information.

  • Field Summary

    Fields inherited from class com.azure.storage.blob.BlobClient

    BLOB_DEFAULT_HTBB_UPLOAD_BLOCK_SIZE, BLOB_DEFAULT_NUMBER_OF_BUFFERS, BLOB_DEFAULT_UPLOAD_BLOCK_SIZE
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Deprecated.
    com.azure.core.util.BinaryData
     
    com.azure.storage.blob.models.BlobDownloadContentResponse
    downloadContentWithResponse(com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context)
     
    void
     
    com.azure.storage.blob.models.BlobDownloadResponse
    downloadStreamWithResponse(OutputStream stream, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context)
     
    com.azure.storage.blob.models.BlobProperties
     
    com.azure.storage.blob.models.BlobProperties
    downloadToFile(String filePath, boolean overwrite)
     
    com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties>
    downloadToFileWithResponse(com.azure.storage.blob.options.BlobDownloadToFileOptions options, Duration timeout, com.azure.core.util.Context context)
     
    com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties>
    downloadToFileWithResponse(String filePath, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.DownloadRetryOptions downloadRetryOptions, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Duration timeout, com.azure.core.util.Context context)
     
    com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties>
    downloadToFileWithResponse(String filePath, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.DownloadRetryOptions downloadRetryOptions, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Set<OpenOption> openOptions, Duration timeout, com.azure.core.util.Context context)
     
    com.azure.storage.blob.models.BlobDownloadResponse
    downloadWithResponse(OutputStream stream, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context)
    Deprecated.
    com.azure.storage.blob.specialized.AppendBlobClient
    Unsupported.
    com.azure.storage.blob.specialized.BlobOutputStream
    Creates and opens an output stream to write data to the block blob.
    com.azure.storage.blob.specialized.BlobOutputStream
    getBlobOutputStream(boolean overwrite)
    Creates and opens an output stream to write data to the block blob.
    com.azure.storage.blob.specialized.BlobOutputStream
    getBlobOutputStream(com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.BlobHttpHeaders headers, Map<String,String> metadata, com.azure.storage.blob.models.AccessTier tier, com.azure.storage.blob.models.BlobRequestConditions requestConditions)
    Creates and opens an output stream to write data to the block blob.
    com.azure.storage.blob.specialized.BlobOutputStream
    getBlobOutputStream(com.azure.storage.blob.options.BlockBlobOutputStreamOptions options)
    Creates and opens an output stream to write data to the block blob.
    com.azure.storage.blob.specialized.BlockBlobClient
    Unsupported.
    getCustomerProvidedKeyClient(com.azure.storage.blob.models.CustomerProvidedKey customerProvidedKey)
    Creates a new EncryptedBlobClient with the specified customerProvidedKey.
    Creates a new EncryptedBlobClient with the specified encryptionScope.
    com.azure.storage.blob.specialized.PageBlobClient
    Unsupported.
    com.azure.storage.blob.specialized.BlobInputStream
     
    com.azure.storage.blob.specialized.BlobInputStream
    openInputStream(com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.BlobRequestConditions requestConditions)
     
    com.azure.storage.blob.specialized.BlobInputStream
    openInputStream(com.azure.storage.blob.options.BlobInputStreamOptions options)
     
    com.azure.storage.blob.specialized.BlobInputStream
    openInputStream(com.azure.storage.blob.options.BlobInputStreamOptions options, com.azure.core.util.Context context)
     
    Unsupported.
    com.azure.core.http.rest.Response<InputStream>
    openQueryInputStreamWithResponse(com.azure.storage.blob.options.BlobQueryOptions queryOptions)
    Unsupported.
    void
    query(OutputStream stream, String expression)
    Unsupported.
    com.azure.storage.blob.models.BlobQueryResponse
    queryWithResponse(com.azure.storage.blob.options.BlobQueryOptions queryOptions, Duration timeout, com.azure.core.util.Context context)
    Unsupported.
    void
    Creates a new block blob, or updates the content of an existing block blob.
    void
    uploadFromFile(String filePath, boolean overwrite)
    Creates a new block blob, or updates the content of an existing block blob.
    void
    uploadFromFile(String filePath, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.BlobHttpHeaders headers, Map<String,String> metadata, com.azure.storage.blob.models.AccessTier tier, com.azure.storage.blob.models.BlobRequestConditions requestConditions, Duration timeout)
    Creates a new block blob, or updates the content of an existing block blob.
    com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlockBlobItem>
    uploadFromFileWithResponse(com.azure.storage.blob.options.BlobUploadFromFileOptions options, Duration timeout, com.azure.core.util.Context context)
    Creates a new block blob, or updates the content of an existing block blob.

    Methods inherited from class com.azure.storage.blob.BlobClient

    getSnapshotClient, getVersionClient, upload, upload, upload, upload, upload, upload, uploadWithResponse, uploadWithResponse, uploadWithResponse

    Methods inherited from class com.azure.storage.blob.specialized.BlobClientBase

    abortCopyFromUrl, abortCopyFromUrlWithResponse, beginCopy, beginCopy, beginCopy, copyFromUrl, copyFromUrlWithResponse, copyFromUrlWithResponse, createSnapshot, createSnapshotWithResponse, delete, deleteIfExists, deleteIfExistsWithResponse, deleteImmutabilityPolicy, deleteImmutabilityPolicyWithResponse, deleteWithResponse, exists, existsWithResponse, generateSas, generateSas, generateUserDelegationSas, generateUserDelegationSas, getAccountInfo, getAccountInfoWithResponse, getAccountName, getAccountUrl, getBlobName, getBlobUrl, getContainerClient, getContainerName, getCustomerProvidedKey, getHttpPipeline, getProperties, getPropertiesWithResponse, getServiceVersion, getSnapshotId, getTags, getTagsWithResponse, getVersionId, isSnapshot, openSeekableByteChannelRead, setAccessTier, setAccessTierWithResponse, setAccessTierWithResponse, setHttpHeaders, setHttpHeadersWithResponse, setImmutabilityPolicy, setImmutabilityPolicyWithResponse, setLegalHold, setLegalHoldWithResponse, setMetadata, setMetadataWithResponse, setTags, setTagsWithResponse, undelete, undeleteWithResponse

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getEncryptionScopeClient

      public EncryptedBlobClient getEncryptionScopeClient(String encryptionScope)
      Creates a new EncryptedBlobClient with the specified encryptionScope.
      Overrides:
      getEncryptionScopeClient in class com.azure.storage.blob.BlobClient
      Parameters:
      encryptionScope - the encryption scope for the blob, pass null to use no encryption scope.
      Returns:
      a EncryptedBlobClient with the specified encryptionScope.
    • getCustomerProvidedKeyClient

      public EncryptedBlobClient getCustomerProvidedKeyClient(com.azure.storage.blob.models.CustomerProvidedKey customerProvidedKey)
      Creates a new EncryptedBlobClient with the specified customerProvidedKey.
      Overrides:
      getCustomerProvidedKeyClient in class com.azure.storage.blob.BlobClient
      Parameters:
      customerProvidedKey - the CustomerProvidedKey for the blob, pass null to use no customer provided key.
      Returns:
      a EncryptedBlobClient with the specified customerProvidedKey.
    • getBlobOutputStream

      public com.azure.storage.blob.specialized.BlobOutputStream getBlobOutputStream()
      Creates and opens an output stream to write data to the block blob.

      Note: We recommend you call write with reasonably sized buffers, you can do so by wrapping the BlobOutputStream obtained below with a BufferedOutputStream.

      Returns:
      A BlobOutputStream object used to write data to the blob.
      Throws:
      com.azure.storage.blob.models.BlobStorageException - If a storage service error occurred.
    • getBlobOutputStream

      public com.azure.storage.blob.specialized.BlobOutputStream getBlobOutputStream(boolean overwrite)
      Creates and opens an output stream to write data to the block blob.

      Note: We recommend you call write with reasonably sized buffers, you can do so by wrapping the BlobOutputStream obtained below with a BufferedOutputStream.

      Parameters:
      overwrite - Whether to overwrite, should data exist on the blob.
      Returns:
      A BlobOutputStream object used to write data to the blob.
      Throws:
      com.azure.storage.blob.models.BlobStorageException - If a storage service error occurred.
    • getBlobOutputStream

      public com.azure.storage.blob.specialized.BlobOutputStream getBlobOutputStream(com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.BlobHttpHeaders headers, Map<String,String> metadata, com.azure.storage.blob.models.AccessTier tier, com.azure.storage.blob.models.BlobRequestConditions requestConditions)
      Creates and opens an output stream to write data to the block blob. If the blob already exists on the service, it will be overwritten.

      To avoid overwriting, pass "*" to BlobRequestConditions.setIfNoneMatch(String).

      Note: We recommend you call write with reasonably sized buffers, you can do so by wrapping the BlobOutputStream obtained below with a BufferedOutputStream.

      Parameters:
      parallelTransferOptions - ParallelTransferOptions used to configure buffered uploading.
      headers - BlobHttpHeaders
      metadata - Metadata to associate with the blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
      tier - AccessTier for the destination blob.
      requestConditions - BlobRequestConditions
      Returns:
      A BlobOutputStream object used to write data to the blob.
      Throws:
      com.azure.storage.blob.models.BlobStorageException - If a storage service error occurred.
    • getBlobOutputStream

      public com.azure.storage.blob.specialized.BlobOutputStream getBlobOutputStream(com.azure.storage.blob.options.BlockBlobOutputStreamOptions options)
      Creates and opens an output stream to write data to the block blob. If the blob already exists on the service, it will be overwritten.

      To avoid overwriting, pass "*" to BlobRequestConditions.setIfNoneMatch(String).

      Note: We recommend you call write with reasonably sized buffers, you can do so by wrapping the BlobOutputStream obtained below with a BufferedOutputStream.

      Parameters:
      options - BlockBlobOutputStreamOptions
      Returns:
      A BlobOutputStream object used to write data to the blob.
      Throws:
      com.azure.storage.blob.models.BlobStorageException - If a storage service error occurred.
    • uploadFromFile

      public void uploadFromFile(String filePath)
      Creates a new block blob, or updates the content of an existing block blob.

      Code Samples

       try {
           client.uploadFromFile(filePath);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Overrides:
      uploadFromFile in class com.azure.storage.blob.BlobClient
      Parameters:
      filePath - Path of the file to upload
    • uploadFromFile

      public void uploadFromFile(String filePath, boolean overwrite)
      Creates a new block blob, or updates the content of an existing block blob.

      Code Samples

       try {
           boolean overwrite = false; // Default value
           client.uploadFromFile(filePath, overwrite);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Overrides:
      uploadFromFile in class com.azure.storage.blob.BlobClient
      Parameters:
      filePath - Path of the file to upload
      overwrite - Whether to overwrite should data already exist on the blob
    • uploadFromFile

      public void uploadFromFile(String filePath, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.BlobHttpHeaders headers, Map<String,String> metadata, com.azure.storage.blob.models.AccessTier tier, com.azure.storage.blob.models.BlobRequestConditions requestConditions, Duration timeout) throws UncheckedIOException
      Creates a new block blob, or updates the content of an existing block blob.

      Code Samples

       BlobHttpHeaders headers = new BlobHttpHeaders()
           .setContentMd5("data".getBytes(StandardCharsets.UTF_8))
           .setContentLanguage("en-US")
           .setContentType("binary");
      
       Map<String, String> metadata = new HashMap<>(Collections.singletonMap("metadata", "value"));
       BlobRequestConditions requestConditions = new BlobRequestConditions()
           .setLeaseId(leaseId)
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
       long blockSize = 100 * 1024 * 1024; // 100 MB;
       ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize);
      
       try {
           client.uploadFromFile(filePath, parallelTransferOptions, headers, metadata, AccessTier.HOT,
               requestConditions, timeout);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Overrides:
      uploadFromFile in class com.azure.storage.blob.BlobClient
      Parameters:
      filePath - Path of the file to upload
      parallelTransferOptions - ParallelTransferOptions to use to upload from file. Number of parallel transfers parameter is ignored.
      headers - BlobHttpHeaders
      metadata - Metadata to associate with the blob. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
      tier - AccessTier for the uploaded blob
      requestConditions - BlobRequestConditions
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      Throws:
      UncheckedIOException - If an I/O error occurs
    • uploadFromFileWithResponse

      public com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlockBlobItem> uploadFromFileWithResponse(com.azure.storage.blob.options.BlobUploadFromFileOptions options, Duration timeout, com.azure.core.util.Context context) throws UncheckedIOException
      Creates a new block blob, or updates the content of an existing block blob.

      Code Samples

       BlobHttpHeaders headers = new BlobHttpHeaders()
           .setContentMd5("data".getBytes(StandardCharsets.UTF_8))
           .setContentLanguage("en-US")
           .setContentType("binary");
      
       Map<String, String> metadata = new HashMap<>(Collections.singletonMap("metadata", "value"));
       Map<String, String> tags = new HashMap<>(Collections.singletonMap("tag", "value"));
       BlobRequestConditions requestConditions = new BlobRequestConditions()
           .setLeaseId(leaseId)
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
       long blockSize = 100 * 1024 * 1024; // 100 MB;
       ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize);
      
       try {
           client.uploadFromFileWithResponse(new BlobUploadFromFileOptions(filePath)
               .setParallelTransferOptions(parallelTransferOptions).setHeaders(headers).setMetadata(metadata)
               .setTags(tags).setTier(AccessTier.HOT).setRequestConditions(requestConditions), timeout,
               Context.NONE);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Overrides:
      uploadFromFileWithResponse in class com.azure.storage.blob.BlobClient
      Parameters:
      options - BlobUploadFromFileOptions
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      Information about the uploaded block blob.
      Throws:
      UncheckedIOException - If an I/O error occurs
    • downloadToFile

      public com.azure.storage.blob.models.BlobProperties downloadToFile(String filePath)
      Overrides:
      downloadToFile in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadToFile

      public com.azure.storage.blob.models.BlobProperties downloadToFile(String filePath, boolean overwrite)
      Overrides:
      downloadToFile in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadToFileWithResponse

      public com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties> downloadToFileWithResponse(String filePath, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.DownloadRetryOptions downloadRetryOptions, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Duration timeout, com.azure.core.util.Context context)
      Overrides:
      downloadToFileWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadToFileWithResponse

      public com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties> downloadToFileWithResponse(String filePath, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.ParallelTransferOptions parallelTransferOptions, com.azure.storage.blob.models.DownloadRetryOptions downloadRetryOptions, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean rangeGetContentMd5, Set<OpenOption> openOptions, Duration timeout, com.azure.core.util.Context context)
      Overrides:
      downloadToFileWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadToFileWithResponse

      public com.azure.core.http.rest.Response<com.azure.storage.blob.models.BlobProperties> downloadToFileWithResponse(com.azure.storage.blob.options.BlobDownloadToFileOptions options, Duration timeout, com.azure.core.util.Context context)
      Overrides:
      downloadToFileWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • openInputStream

      public com.azure.storage.blob.specialized.BlobInputStream openInputStream()
      Overrides:
      openInputStream in class com.azure.storage.blob.specialized.BlobClientBase
    • openInputStream

      public com.azure.storage.blob.specialized.BlobInputStream openInputStream(com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.BlobRequestConditions requestConditions)
      Overrides:
      openInputStream in class com.azure.storage.blob.specialized.BlobClientBase
    • openInputStream

      public com.azure.storage.blob.specialized.BlobInputStream openInputStream(com.azure.storage.blob.options.BlobInputStreamOptions options)
      Overrides:
      openInputStream in class com.azure.storage.blob.specialized.BlobClientBase
    • openInputStream

      public com.azure.storage.blob.specialized.BlobInputStream openInputStream(com.azure.storage.blob.options.BlobInputStreamOptions options, com.azure.core.util.Context context)
      Overrides:
      openInputStream in class com.azure.storage.blob.specialized.BlobClientBase
    • download

      @Deprecated public void download(OutputStream stream)
      Deprecated.
      Overrides:
      download in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadStream

      public void downloadStream(OutputStream stream)
      Overrides:
      downloadStream in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadContent

      public com.azure.core.util.BinaryData downloadContent()
      Overrides:
      downloadContent in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadWithResponse

      @Deprecated public com.azure.storage.blob.models.BlobDownloadResponse downloadWithResponse(OutputStream stream, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context)
      Deprecated.
      Overrides:
      downloadWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadStreamWithResponse

      public com.azure.storage.blob.models.BlobDownloadResponse downloadStreamWithResponse(OutputStream stream, com.azure.storage.blob.models.BlobRange range, com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, com.azure.core.util.Context context)
      Overrides:
      downloadStreamWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • downloadContentWithResponse

      public com.azure.storage.blob.models.BlobDownloadContentResponse downloadContentWithResponse(com.azure.storage.blob.models.DownloadRetryOptions options, com.azure.storage.blob.models.BlobRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context)
      Overrides:
      downloadContentWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • getAppendBlobClient

      public com.azure.storage.blob.specialized.AppendBlobClient getAppendBlobClient()
      Unsupported.
      Overrides:
      getAppendBlobClient in class com.azure.storage.blob.BlobClient
    • getBlockBlobClient

      public com.azure.storage.blob.specialized.BlockBlobClient getBlockBlobClient()
      Unsupported.
      Overrides:
      getBlockBlobClient in class com.azure.storage.blob.BlobClient
    • getPageBlobClient

      public com.azure.storage.blob.specialized.PageBlobClient getPageBlobClient()
      Unsupported.
      Overrides:
      getPageBlobClient in class com.azure.storage.blob.BlobClient
    • openQueryInputStream

      public InputStream openQueryInputStream(String expression)
      Unsupported. Cannot query data encrypted on client side.
      Overrides:
      openQueryInputStream in class com.azure.storage.blob.specialized.BlobClientBase
    • openQueryInputStreamWithResponse

      public com.azure.core.http.rest.Response<InputStream> openQueryInputStreamWithResponse(com.azure.storage.blob.options.BlobQueryOptions queryOptions)
      Unsupported. Cannot query data encrypted on client side.
      Overrides:
      openQueryInputStreamWithResponse in class com.azure.storage.blob.specialized.BlobClientBase
    • query

      public void query(OutputStream stream, String expression)
      Unsupported. Cannot query data encrypted on client side.
      Overrides:
      query in class com.azure.storage.blob.specialized.BlobClientBase
    • queryWithResponse

      public com.azure.storage.blob.models.BlobQueryResponse queryWithResponse(com.azure.storage.blob.options.BlobQueryOptions queryOptions, Duration timeout, com.azure.core.util.Context context)
      Unsupported. Cannot query data encrypted on client side.
      Overrides:
      queryWithResponse in class com.azure.storage.blob.specialized.BlobClientBase