Class DataLakeFileClient

java.lang.Object
com.azure.storage.file.datalake.DataLakePathClient
com.azure.storage.file.datalake.DataLakeFileClient

public class DataLakeFileClient extends DataLakePathClient
This class provides a client that contains file operations for Azure Storage Data Lake. Operations provided by this client include creating a file, deleting a file, renaming a file, setting metadata and http headers, setting and retrieving access control, getting properties, reading a file, and appending and flushing data to write to a file.

This client is instantiated through DataLakePathClientBuilder or retrieved via getFileClient.

Please refer to the Azure Docs for more information.

  • Method Details

    • getFileUrl

      public String getFileUrl()
      Gets the URL of the file represented by this client on the Data Lake service.
      Returns:
      the URL.
    • getFilePath

      public String getFilePath()
      Gets the path of this file, not including the name of the resource itself.
      Returns:
      The path of the file.
    • getFileName

      public String getFileName()
      Gets the name of this file, not including its full path.
      Returns:
      The name of the file.
    • getCustomerProvidedKeyClient

      public DataLakeFileClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)
      Creates a new DataLakeFileClient with the specified customerProvidedKey.
      Overrides:
      getCustomerProvidedKeyClient in class DataLakePathClient
      Parameters:
      customerProvidedKey - the CustomerProvidedKey for the blob, pass null to use no customer provided key.
      Returns:
      a DataLakeFileClient with the specified customerProvidedKey.
    • delete

      public void delete()
      Deletes a file.

      Code Samples

       client.delete();
       System.out.println("Delete request completed");
       

      For more information see the Azure Docs

    • deleteWithResponse

      public Response<Void> deleteWithResponse(DataLakeRequestConditions requestConditions, Duration timeout, Context context)
      Deletes a file.

      Code Samples

       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId);
      
       client.deleteWithResponse(requestConditions, timeout, new Context(key1, value1));
       System.out.println("Delete request completed");
       

      For more information see the Azure Docs

      Parameters:
      requestConditions - DataLakeRequestConditions
      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:
      A response containing status code and HTTP headers.
    • deleteIfExists

      public boolean deleteIfExists()
      Deletes a file if it exists.

      Code Samples

       client.deleteIfExists();
       System.out.println("Delete request completed");
       

      For more information see the Azure Docs

      Overrides:
      deleteIfExists in class DataLakePathClient
      Returns:
      true if file is successfully deleted, false if the file does not exist.
    • deleteIfExistsWithResponse

      public Response<Boolean> deleteIfExistsWithResponse(DataLakePathDeleteOptions options, Duration timeout, Context context)
      Deletes a file if it exists.

      Code Samples

       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId);
       DataLakePathDeleteOptions options = new DataLakePathDeleteOptions().setIsRecursive(false)
           .setRequestConditions(requestConditions);
      
       Response<Boolean> response = client.deleteIfExistsWithResponse(options, timeout, new Context(key1, value1));
       if (response.getStatusCode() == 404) {
           System.out.println("Does not exist.");
       } else {
           System.out.printf("Delete completed with status %d%n", response.getStatusCode());
       }
       

      For more information see the Azure Docs

      Overrides:
      deleteIfExistsWithResponse in class DataLakePathClient
      Parameters:
      options - DataLakePathDeleteOptions
      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:
      A response containing status code and HTTP headers. If Response's status code is 200, the file was successfully deleted. If status code is 404, the file does not exist.
    • upload

      public PathInfo upload(InputStream data, long length)
      Creates a new file. By default, this method will not overwrite an existing file.

      Code Samples

       try {
           client.upload(data, length);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Parameters:
      data - The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider wrapping your data source in a BufferedInputStream to add mark support.
      length - The exact length of the data. It is important that this value match precisely the length of the data provided in the InputStream.
      Returns:
      Information about the uploaded path.
    • upload

      public PathInfo upload(InputStream data, long length, boolean overwrite)
      Creates a new file, or updates the content of an existing file.

      Code Samples

       try {
           boolean overwrite = false;
           client.upload(data, length, overwrite);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Parameters:
      data - The data to write to the blob. The data must be markable. This is in order to support retries. If the data is not markable, consider wrapping your data source in a BufferedInputStream to add mark support.
      length - The exact length of the data. It is important that this value match precisely the length of the data provided in the InputStream.
      overwrite - Whether to overwrite, should data exist on the file.
      Returns:
      Information about the uploaded path.
    • uploadWithResponse

      public Response<PathInfo> uploadWithResponse(FileParallelUploadOptions options, Duration timeout, Context context)
      Creates a new file. To avoid overwriting, pass "*" to DataLakeRequestConditions.setIfNoneMatch(String).

      Code Samples

       PathHttpHeaders headers = new PathHttpHeaders()
           .setContentMd5("data".getBytes(StandardCharsets.UTF_8))
           .setContentLanguage("en-US")
           .setContentType("binary");
      
       Map<String, String> metadata = Collections.singletonMap("metadata", "value");
       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId)
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
       Long blockSize = 100L * 1024L * 1024L; // 100 MB;
       ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize);
      
       try {
           client.uploadWithResponse(new FileParallelUploadOptions(data, length)
               .setParallelTransferOptions(parallelTransferOptions).setHeaders(headers)
               .setMetadata(metadata).setRequestConditions(requestConditions)
               .setPermissions("permissions").setUmask("umask"), timeout, new Context("key", "value"));
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Parameters:
      options - FileParallelUploadOptions
      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 path.
    • uploadFromFile

      public void uploadFromFile(String filePath)
      Creates a file, with the content of the specified file. By default, this method will not overwrite an existing file.

      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());
       }
       
      Parameters:
      filePath - Path of the file to upload
      Throws:
      UncheckedIOException - If an I/O error occurs
    • uploadFromFile

      public void uploadFromFile(String filePath, boolean overwrite)
      Creates a file, with the content of the specified file.

      Code Samples

       try {
           boolean overwrite = false;
           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());
       }
       
      Parameters:
      filePath - Path of the file to upload
      overwrite - Whether to overwrite, should the file already exist
      Throws:
      UncheckedIOException - If an I/O error occurs
    • uploadFromFile

      public void uploadFromFile(String filePath, ParallelTransferOptions parallelTransferOptions, PathHttpHeaders headers, Map<String,String> metadata, DataLakeRequestConditions requestConditions, Duration timeout)
      Creates a file, with the content of the specified file.

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

      Code Samples

       PathHttpHeaders headers = new PathHttpHeaders()
           .setContentMd5("data".getBytes(StandardCharsets.UTF_8))
           .setContentLanguage("en-US")
           .setContentType("binary");
      
       Map<String, String> metadata = Collections.singletonMap("metadata", "value");
       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId)
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
       Long blockSize = 100L * 1024L * 1024L; // 100 MB;
       ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions().setBlockSizeLong(blockSize);
      
       try {
           client.uploadFromFile(filePath, parallelTransferOptions, headers, metadata, requestConditions, timeout);
           System.out.println("Upload from file succeeded");
       } catch (UncheckedIOException ex) {
           System.err.printf("Failed to upload from file %s%n", ex.getMessage());
       }
       
      Parameters:
      filePath - Path of the file to upload
      parallelTransferOptions - ParallelTransferOptions used to configure buffered uploading.
      headers - PathHttpHeaders
      metadata - Metadata to associate with the resource. If there is leading or trailing whitespace in any metadata key or value, it must be removed or encoded.
      requestConditions - DataLakeRequestConditions
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      Throws:
      UncheckedIOException - If an I/O error occurs
    • append

      public void append(InputStream data, long fileOffset, long length)
      Appends data to the specified resource to later be flushed (written) by a call to flush

      Code Samples

       client.append(data, offset, length);
       System.out.println("Append data completed");
       

      For more information, see the Azure Docs

      Parameters:
      data - The data to write to the file.
      fileOffset - The position where the data is to be appended.
      length - The exact length of the data.
    • appendWithResponse

      public Response<Void> appendWithResponse(InputStream data, long fileOffset, long length, byte[] contentMd5, String leaseId, Duration timeout, Context context)
      Appends data to the specified resource to later be flushed (written) by a call to flush

      Code Samples

       FileRange range = new FileRange(1024, 2048L);
       DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
       byte[] contentMd5 = new byte[0]; // Replace with valid md5
      
       Response<Void> response = client.appendWithResponse(data, offset, length, contentMd5, leaseId, timeout,
           new Context(key1, value1));
       System.out.printf("Append data completed with status %d%n", response.getStatusCode());
       

      For more information, see the Azure Docs

      Parameters:
      data - The data to write to the file.
      fileOffset - The position where the data is to be appended.
      length - The exact length of the data.
      contentMd5 - An MD5 hash of the content of the data. If specified, the service will calculate the MD5 of the received data and fail the request if it does not match the provided MD5.
      leaseId - By setting lease id, requests will fail if the provided lease does not match the active lease on the file.
      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:
      A response signalling completion.
    • flush

      public PathInfo flush(long position)
      Flushes (writes) data previously appended to the file through a call to append. The previously uploaded data must be contiguous.

      By default this method will not overwrite existing data.

      Code Samples

       client.flush(position);
       System.out.println("Flush data completed");
       

      For more information, see the Azure Docs

      Parameters:
      position - The length of the file after all data has been written.
      Returns:
      Information about the created resource.
    • flush

      public PathInfo flush(long position, boolean overwrite)
      Flushes (writes) data previously appended to the file through a call to append. The previously uploaded data must be contiguous.

      Code Samples

       boolean overwrite = true;
       client.flush(position, overwrite);
       System.out.println("Flush data completed");
       

      For more information, see the Azure Docs

      Parameters:
      position - The length of the file after all data has been written.
      overwrite - Whether to overwrite, should data exist on the file.
      Returns:
      Information about the created resource.
    • flushWithResponse

      public Response<PathInfo> flushWithResponse(long position, boolean retainUncommittedData, boolean close, PathHttpHeaders httpHeaders, DataLakeRequestConditions requestConditions, Duration timeout, Context context)
      Flushes (writes) data previously appended to the file through a call to append. The previously uploaded data must be contiguous.

      Code Samples

       FileRange range = new FileRange(1024, 2048L);
       DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
       byte[] contentMd5 = new byte[0]; // Replace with valid md5
       boolean retainUncommittedData = false;
       boolean close = false;
       PathHttpHeaders httpHeaders = new PathHttpHeaders()
           .setContentLanguage("en-US")
           .setContentType("binary");
       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId);
      
       Response<PathInfo> response = client.flushWithResponse(position, retainUncommittedData, close, httpHeaders,
           requestConditions, timeout, new Context(key1, value1));
       System.out.printf("Flush data completed with status %d%n", response.getStatusCode());
       

      For more information, see the Azure Docs

      Parameters:
      position - The length of the file after all data has been written.
      retainUncommittedData - Whether uncommitted data is to be retained after the operation.
      close - Whether a file changed event raised indicates completion (true) or modification (false).
      httpHeaders - httpHeaders
      requestConditions - requestConditions
      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:
      A response containing the information of the created resource.
    • read

      public void read(OutputStream stream)
      Reads the entire file into an output stream.

      Code Samples

       client.read(new ByteArrayOutputStream());
       System.out.println("Download completed.");
       

      For more information, see the Azure Docs

      Parameters:
      stream - A non-null OutputStream instance where the downloaded data will be written.
      Throws:
      UncheckedIOException - If an I/O error occurs.
      NullPointerException - if stream is null
    • readWithResponse

      public FileReadResponse readWithResponse(OutputStream stream, FileRange range, DownloadRetryOptions options, DataLakeRequestConditions requestConditions, boolean getRangeContentMd5, Duration timeout, Context context)
      Reads a range of bytes from a file into an output stream.

      Code Samples

       FileRange range = new FileRange(1024, 2048L);
       DownloadRetryOptions options = new DownloadRetryOptions().setMaxRetryRequests(5);
      
       System.out.printf("Download completed with status %d%n",
           client.readWithResponse(new ByteArrayOutputStream(), range, options, null, false,
               timeout, new Context(key2, value2)).getStatusCode());
       

      For more information, see the Azure Docs

      Parameters:
      stream - A non-null OutputStream instance where the downloaded data will be written.
      range - FileRange
      options - DownloadRetryOptions
      requestConditions - DataLakeRequestConditions
      getRangeContentMd5 - Whether the contentMD5 for the specified file range should be returned.
      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:
      A response containing status code and HTTP headers.
      Throws:
      UncheckedIOException - If an I/O error occurs.
      NullPointerException - if stream is null
    • openInputStream

      public DataLakeFileOpenInputStreamResult openInputStream()
      Opens a file input stream to download the file. Locks on ETags.
      Returns:
      An InputStream object that represents the stream to use for reading from the file.
      Throws:
      DataLakeStorageException - If a storage service error occurred.
    • openInputStream

      Opens a file input stream to download the specified range of the file. Defaults to ETag locking if the option is not specified.
      Parameters:
      options - DataLakeFileInputStreamOptions
      Returns:
      A DataLakeFileOpenInputStreamResult object that contains the stream to use for reading from the file.
      Throws:
      DataLakeStorageException - If a storage service error occurred.
    • readToFile

      public PathProperties readToFile(String filePath)
      Reads the entire file into a file specified by the path.

      The file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown.

      Code Samples

       client.readToFile(file);
       System.out.println("Completed download to file");
       

      For more information, see the Azure Docs

      Parameters:
      filePath - A String representing the filePath where the downloaded data will be written.
      Returns:
      The file properties and metadata.
      Throws:
      UncheckedIOException - If an I/O error occurs
    • readToFile

      public PathProperties readToFile(String filePath, boolean overwrite)
      Reads the entire file into a file specified by the path.

      If overwrite is set to false, the file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown.

      Code Samples

       boolean overwrite = false; // Default value
       client.readToFile(file, overwrite);
       System.out.println("Completed download to file");
       

      For more information, see the Azure Docs

      Parameters:
      filePath - A String representing the filePath where the downloaded data will be written.
      overwrite - Whether to overwrite the file, should the file exist.
      Returns:
      The file properties and metadata.
      Throws:
      UncheckedIOException - If an I/O error occurs
    • readToFileWithResponse

      public Response<PathProperties> readToFileWithResponse(String filePath, FileRange range, ParallelTransferOptions parallelTransferOptions, DownloadRetryOptions downloadRetryOptions, DataLakeRequestConditions requestConditions, boolean rangeGetContentMd5, Set<OpenOption> openOptions, Duration timeout, Context context)
      Reads the entire file into a file specified by the path.

      By default the file will be created and must not exist, if the file already exists a FileAlreadyExistsException will be thrown. To override this behavior, provide appropriate OpenOptions

      Code Samples

       FileRange fileRange = new FileRange(1024, 2048L);
       DownloadRetryOptions downloadRetryOptions = new DownloadRetryOptions().setMaxRetryRequests(5);
       Set<OpenOption> openOptions = new HashSet<>(Arrays.asList(StandardOpenOption.CREATE_NEW,
           StandardOpenOption.WRITE, StandardOpenOption.READ)); // Default options
      
       client.readToFileWithResponse(file, fileRange, new ParallelTransferOptions().setBlockSizeLong(4L * Constants.MB),
           downloadRetryOptions, null, false, openOptions, timeout, new Context(key2, value2));
       System.out.println("Completed download to file");
       

      For more information, see the Azure Docs

      Parameters:
      filePath - A String representing the filePath where the downloaded data will be written.
      range - FileRange
      parallelTransferOptions - ParallelTransferOptions to use to download to file. Number of parallel transfers parameter is ignored.
      downloadRetryOptions - DownloadRetryOptions
      requestConditions - DataLakeRequestConditions
      rangeGetContentMd5 - Whether the contentMD5 for the specified file range should be returned.
      openOptions - OpenOptions to use to configure how to open or create the file.
      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:
      A response containing the file properties and metadata.
      Throws:
      UncheckedIOException - If an I/O error occurs.
    • rename

      public DataLakeFileClient rename(String destinationFileSystem, String destinationPath)
      Moves the file to another location within the file system. For more information see the Azure Docs.

      Code Samples

       DataLakeDirectoryAsyncClient renamedClient = client.rename(fileSystemName, destinationPath).block();
       System.out.println("Directory Client has been renamed");
       
      Parameters:
      destinationFileSystem - The file system of the destination within the account. null for the current file system.
      destinationPath - Relative path from the file system to rename the file to, excludes the file system name. For example if you want to move a file with fileSystem = "myfilesystem", path = "mydir/hello.txt" to another path in myfilesystem (ex: newdir/hi.txt) then set the destinationPath = "newdir/hi.txt"
      Returns:
      A DataLakeFileClient used to interact with the new file created.
    • renameWithResponse

      public Response<DataLakeFileClient> renameWithResponse(String destinationFileSystem, String destinationPath, DataLakeRequestConditions sourceRequestConditions, DataLakeRequestConditions destinationRequestConditions, Duration timeout, Context context)
      Moves the file to another location within the file system. For more information, see the Azure Docs.

      Code Samples

       DataLakeRequestConditions sourceRequestConditions = new DataLakeRequestConditions()
           .setLeaseId(leaseId);
       DataLakeRequestConditions destinationRequestConditions = new DataLakeRequestConditions();
      
       DataLakeFileClient newRenamedClient = client.renameWithResponse(fileSystemName, destinationPath,
           sourceRequestConditions, destinationRequestConditions, timeout, new Context(key1, value1)).getValue();
       System.out.println("Directory Client has been renamed");
       
      Parameters:
      destinationFileSystem - The file system of the destination within the account. null for the current file system.
      destinationPath - Relative path from the file system to rename the file to, excludes the file system name. For example if you want to move a file with fileSystem = "myfilesystem", path = "mydir/hello.txt" to another path in myfilesystem (ex: newdir/hi.txt) then set the destinationPath = "newdir/hi.txt"
      sourceRequestConditions - DataLakeRequestConditions against the source.
      destinationRequestConditions - DataLakeRequestConditions against the destination.
      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:
      A Response whose value that contains a DataLakeFileClient used to interact with the file created.
    • openQueryInputStream

      public InputStream openQueryInputStream(String expression)
      Opens an input stream to query the file.

      For more information, see the Azure Docs

      Code Samples

       String expression = "SELECT * from BlobStorage";
       InputStream inputStream = client.openQueryInputStream(expression);
       // Now you can read from the input stream like you would normally.
       
      Parameters:
      expression - The query expression.
      Returns:
      An InputStream object that represents the stream to use for reading the query response.
    • openQueryInputStreamWithResponse

      public Response<InputStream> openQueryInputStreamWithResponse(FileQueryOptions queryOptions)
      Opens an input stream to query the file.

      For more information, see the Azure Docs

      Code Samples

       String expression = "SELECT * from BlobStorage";
       FileQuerySerialization input = new FileQueryDelimitedSerialization()
           .setColumnSeparator(',')
           .setEscapeChar('\n')
           .setRecordSeparator('\n')
           .setHeadersPresent(true)
           .setFieldQuote('"');
       FileQuerySerialization output = new FileQueryJsonSerialization()
           .setRecordSeparator('\n');
       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
           .setLeaseId("leaseId");
       Consumer<FileQueryError> errorConsumer = System.out::println;
       Consumer<FileQueryProgress> progressConsumer = progress -> System.out.println("total file bytes read: "
           + progress.getBytesScanned());
       FileQueryOptions queryOptions = new FileQueryOptions(expression)
           .setInputSerialization(input)
           .setOutputSerialization(output)
           .setRequestConditions(requestConditions)
           .setErrorConsumer(errorConsumer)
           .setProgressConsumer(progressConsumer);
      
       InputStream inputStream = client.openQueryInputStreamWithResponse(queryOptions).getValue();
       // Now you can read from the input stream like you would normally.
       
      Parameters:
      queryOptions - The query options.
      Returns:
      A response containing status code and HTTP headers including an InputStream object that represents the stream to use for reading the query response.
    • query

      public void query(OutputStream stream, String expression)
      Queries an entire file into an output stream.

      For more information, see the Azure Docs

      Code Samples

       ByteArrayOutputStream queryData = new ByteArrayOutputStream();
       String expression = "SELECT * from BlobStorage";
       client.query(queryData, expression);
       System.out.println("Query completed.");
       
      Parameters:
      stream - A non-null OutputStream instance where the downloaded data will be written.
      expression - The query expression.
      Throws:
      UncheckedIOException - If an I/O error occurs.
      NullPointerException - if stream is null.
    • queryWithResponse

      public FileQueryResponse queryWithResponse(FileQueryOptions queryOptions, Duration timeout, Context context)
      Queries an entire file into an output stream.

      For more information, see the Azure Docs

      Code Samples

       ByteArrayOutputStream queryData = new ByteArrayOutputStream();
       String expression = "SELECT * from BlobStorage";
       FileQueryJsonSerialization input = new FileQueryJsonSerialization()
           .setRecordSeparator('\n');
       FileQueryDelimitedSerialization output = new FileQueryDelimitedSerialization()
           .setEscapeChar('\0')
           .setColumnSeparator(',')
           .setRecordSeparator('\n')
           .setFieldQuote('\'')
           .setHeadersPresent(true);
       DataLakeRequestConditions requestConditions = new DataLakeRequestConditions().setLeaseId(leaseId);
       Consumer<FileQueryError> errorConsumer = System.out::println;
       Consumer<FileQueryProgress> progressConsumer = progress -> System.out.println("total file bytes read: "
           + progress.getBytesScanned());
       FileQueryOptions queryOptions = new FileQueryOptions(expression, queryData)
           .setInputSerialization(input)
           .setOutputSerialization(output)
           .setRequestConditions(requestConditions)
           .setErrorConsumer(errorConsumer)
           .setProgressConsumer(progressConsumer);
       System.out.printf("Query completed with status %d%n",
           client.queryWithResponse(queryOptions, timeout, new Context(key1, value1))
               .getStatusCode());
       
      Parameters:
      queryOptions - The query options.
      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:
      A response containing status code and HTTP headers.
      Throws:
      UncheckedIOException - If an I/O error occurs.
      NullPointerException - if stream is null.
    • scheduleDeletion

      public void scheduleDeletion(FileScheduleDeletionOptions options)
      Schedules the file for deletion.

      Code Samples

       FileScheduleDeletionOptions options = new FileScheduleDeletionOptions(OffsetDateTime.now().plusDays(1));
       client.scheduleDeletion(options);
       System.out.println("File deletion has been scheduled");
       
      Parameters:
      options - Schedule deletion parameters.
    • scheduleDeletionWithResponse

      public Response<Void> scheduleDeletionWithResponse(FileScheduleDeletionOptions options, Duration timeout, Context context)
      Schedules the file for deletion.

      Code Samples

       FileScheduleDeletionOptions options = new FileScheduleDeletionOptions(OffsetDateTime.now().plusDays(1));
       Context context = new Context("key", "value");
      
       client.scheduleDeletionWithResponse(options, timeout, context);
       System.out.println("File deletion has been scheduled");
       
      Parameters:
      options - Schedule deletion parameters.
      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:
      A response containing status code and HTTP headers.