Class ShareAsyncClient


  • public class ShareAsyncClient
    extends Object
    This class provides a azureFileStorageClient that contains all the operations for interacting with a share in Azure Storage Share. Operations allowed by the azureFileStorageClient are creating and deleting the share, creating snapshots for the share, creating and deleting directories in the share and retrieving and updating properties metadata and access policies of the share.

    Instantiating an Asynchronous Share Client

     ShareAsyncClient client = new ShareClientBuilder()
         .connectionString("${connectionString}")
         .endpoint("${endpoint}")
         .buildAsyncClient();
     

    View this for additional ways to construct the azureFileStorageClient.

    See Also:
    ShareClientBuilder, ShareClient, StorageSharedKeyCredential
    • Method Detail

      • getAccountUrl

        public String getAccountUrl()
        Get the url of the storage account.
        Returns:
        the URL of the storage account
      • getShareUrl

        public String getShareUrl()
        Get the url of the storage share client.
        Returns:
        the url of the Storage Share.
      • getServiceVersion

        public ShareServiceVersion getServiceVersion()
        Gets the service version the client is using.
        Returns:
        the service version the client is using.
      • getDirectoryClient

        public ShareDirectoryAsyncClient getDirectoryClient​(String directoryName)
        Constructs a ShareDirectoryAsyncClient that interacts with the specified directory.

        If the directory doesn't exist in the share create in the azureFileStorageClient will need to be called before interaction with the directory can happen.

        Parameters:
        directoryName - Name of the directory
        Returns:
        a ShareDirectoryAsyncClient that interacts with the directory in the share
      • getSnapshotClient

        public ShareAsyncClient getSnapshotClient​(String snapshot)
        Creates a new ShareAsyncClient linked to the snapshot of this share resource.
        Parameters:
        snapshot - the identifier for a specific snapshot of this share
        Returns:
        a ShareAsyncClient used to interact with the specific snapshot.
      • exists

        public Mono<Boolean> exists()
        Determines if the share this client represents exists in the cloud.

        Code Samples

         client.exists().subscribe(response -> System.out.printf("Exists? %b%n", response));
         
        Returns:
        Flag indicating existence of the share.
      • existsWithResponse

        public Mono<com.azure.core.http.rest.Response<Boolean>> existsWithResponse()
        Determines if the share this client represents exists in the cloud.

        Code Samples

         client.existsWithResponse().subscribe(response -> System.out.printf("Exists? %b%n", response.getValue()));
         
        Returns:
        Flag indicating existence of the share.
      • create

        public Mono<ShareInfo> create()
        Creates the share in the storage account.

        Code Samples

        Create the share

         shareAsyncClient.create().subscribe(
             response -> {
             },
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the share!")
         );
         

        For more information, see the Azure Docs.

        Returns:
        The information about the share
        Throws:
        ShareStorageException - If the share already exists with different metadata
      • createWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> createWithResponse​(Map<String,​String> metadata,
                                                                                     Integer quotaInGB)
        Creates the share in the storage account with the specified metadata and quota.

        Code Samples

        Create the share with metadata "share:metadata"

         shareAsyncClient.createWithResponse(Collections.singletonMap("share", "metadata"), null).subscribe(
             response -> System.out.printf("Creating the share completed with status code %d", response.getStatusCode()),
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the share!")
         );
         

        Create the share with a quota of 10 GB

         shareAsyncClient.createWithResponse(null, 10).subscribe(
             response -> System.out.printf("Creating the share completed with status code %d", response.getStatusCode()),
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the share!")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        metadata - Optional metadata to associate with the share
        quotaInGB - Optional maximum size the share is allowed to grow to in GB. This must be greater than 0 and less than or equal to 5120. The default value is 5120.
        Returns:
        A response containing information about the share and the status its creation.
        Throws:
        ShareStorageException - If the share already exists with different metadata or quotaInGB is outside the allowed range.
      • createWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> createWithResponse​(ShareCreateOptions options)
        Creates the share in the storage account with the specified options.

        Code Samples

        Create the share with optional parameters

         shareAsyncClient.createWithResponse(new ShareCreateOptions()
             .setMetadata(Collections.singletonMap("share", "metadata")).setQuotaInGb(1)
             .setAccessTier(ShareAccessTier.HOT)).subscribe(
                 response -> System.out.printf("Creating the share completed with status code %d",
                     response.getStatusCode()),
                 error -> System.err.print(error.toString()),
                 () -> System.out.println("Complete creating the share!")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareCreateOptions
        Returns:
        A response containing information about the share and the status its creation.
        Throws:
        ShareStorageException - If the share already exists with different metadata or quotaInGB is outside the allowed range.
      • createSnapshot

        public Mono<ShareSnapshotInfo> createSnapshot()
        Creates a snapshot of the share with the same metadata associated to the share at the time of creation.

        Code Samples

        Create a snapshot

         shareAsyncClient.createSnapshot().subscribe(
             response -> System.out.println("Successfully creating the share snapshot with snapshot id: "
                 + response.getSnapshot()),
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete creating the share snapshot.")
         );
         

        For more information, see the Azure Docs.

        Returns:
        The information about the snapshot of share.
        Throws:
        ShareStorageException - If the share doesn't exist, there are 200 snapshots of the share, or a snapshot is in progress for the share
      • createSnapshotWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareSnapshotInfo>> createSnapshotWithResponse​(Map<String,​String> metadata)
        Creates a snapshot of the share with the metadata that was passed associated to the snapshot.

        Code Samples

        Create a snapshot with metadata "snapshot:metadata"

         shareAsyncClient.createSnapshotWithResponse(Collections.singletonMap("snapshot", "metadata")).subscribe(
             response -> System.out.println("Successfully creating the share snapshot with snapshot id: "
                 + response.getValue().getSnapshot()),
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete creating the share snapshot.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        metadata - Optional metadata to associate with the snapshot. If null the metadata of the share will be copied to the snapshot.
        Returns:
        A response containing information about the snapshot of share.
        Throws:
        ShareStorageException - If the share doesn't exist, there are 200 snapshots of the share, or a snapshot is in progress for the share
      • delete

        public Mono<Void> delete()
        Deletes the share in the storage account

        Code Samples

        Delete the share

         shareAsyncClient.delete().subscribe(
             response -> System.out.println("Deleting the shareAsyncClient completed."),
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the share.")
         );
         

        For more information, see the Azure Docs.

        Returns:
        An empty response
        Throws:
        ShareStorageException - If the share doesn't exist
      • deleteWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteWithResponse()
        Deletes the share in the storage account

        Code Samples

        Delete the share

         shareAsyncClient.deleteWithResponse().subscribe(
             response -> System.out.println("Deleting the shareAsyncClient completed with status code: "
                 + response.getStatusCode()),
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the share.")
         );
         

        For more information, see the Azure Docs.

        Returns:
        A response that only contains headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist
      • deleteWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteWithResponse​(ShareDeleteOptions options)
        Deletes the share in the storage account

        Code Samples

        Delete the share

         shareAsyncClient.deleteWithResponse(new ShareDeleteOptions()
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId))).subscribe(
                 response -> System.out.println("Deleting the shareAsyncClient completed with status code: "
                     + response.getStatusCode()), error -> System.err.println(error.toString()),
                 () -> System.out.println("Complete deleting the share.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareDeleteOptions
        Returns:
        A response that only contains headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist
      • getProperties

        public Mono<ShareProperties> getProperties()
        Retrieves the properties of the share, these include the metadata associated to it and the quota that the share is restricted to.

        Code Samples

        Retrieve the share properties

         shareAsyncClient.getProperties()
             .subscribe(properties -> {
                 System.out.printf("Share quota: %d, Metadata: %s", properties.getQuota(), properties.getMetadata());
             });
         

        For more information, see the Azure Docs.

        Returns:
        The properties of the share
        Throws:
        ShareStorageException - If the share doesn't exist
      • getPropertiesWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareProperties>> getPropertiesWithResponse()
        Retrieves the properties of the share, these include the metadata associated with it and the quota that the share is restricted to.

        Code Samples

        Retrieve the share properties

         shareAsyncClient.getPropertiesWithResponse()
             .subscribe(properties -> {
                 System.out.printf("Share quota: %d, Metadata: %s", properties.getValue().getQuota(),
                     properties.getValue().getMetadata());
             });
         

        For more information, see the Azure Docs.

        Returns:
        A response containing the properties of the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist
      • getPropertiesWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareProperties>> getPropertiesWithResponse​(ShareGetPropertiesOptions options)
        Retrieves the properties of the share, these include the metadata associated with it and the quota that the share is restricted to.

        Code Samples

        Retrieve the share properties

         shareAsyncClient.getPropertiesWithResponse(new ShareGetPropertiesOptions()
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(properties -> {
                 System.out.printf("Share quota: %d, Metadata: %s", properties.getValue().getQuota(),
                     properties.getValue().getMetadata());
             });
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareGetPropertiesOptions
        Returns:
        A response containing the properties of the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist
      • setQuota

        @Deprecated
        public Mono<ShareInfo> setQuota​(int quotaInGB)
        Sets the maximum size in GB that the share is allowed to grow.

        Code Samples

        Set the quota to 1024 GB

         shareAsyncClient.setQuota(1024).doOnSuccess(response ->
             System.out.println("Setting the share quota completed.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        quotaInGB - Size in GB to limit the share's growth. The quota in GB must be between 1 and 5120.
        Returns:
        The information about the share
        Throws:
        ShareStorageException - If the share doesn't exist or quotaInGB is outside the allowed bounds
      • setQuotaWithResponse

        @Deprecated
        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setQuotaWithResponse​(int quotaInGB)
        Sets the maximum size in GB that the share is allowed to grow.

        Code Samples

        Set the quota to 1024 GB

         shareAsyncClient.setQuotaWithResponse(1024)
             .subscribe(response ->
                 System.out.printf("Setting the share quota completed with status code %d", response.getStatusCode())
             );
         

        For more information, see the Azure Docs.

        Parameters:
        quotaInGB - Size in GB to limit the share's growth. The quota in GB must be between 1 and 5120.
        Returns:
        A response containing the information about the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist or quotaInGB is outside the allowed bounds
      • setPropertiesWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setPropertiesWithResponse​(ShareSetPropertiesOptions options)
        Sets the share's properties.

        Code Samples

         shareAsyncClient.setPropertiesWithResponse(new ShareSetPropertiesOptions().setAccessTier(ShareAccessTier.HOT)
             .setQuotaInGb(1024).setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(response ->
                 System.out.printf("Setting the share quota completed with status code %d", response.getStatusCode())
             );
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareSetPropertiesOptions
        Returns:
        A response containing the information about the share with headers and response status code
      • setMetadata

        public Mono<ShareInfo> setMetadata​(Map<String,​String> metadata)
        Sets the user-defined metadata to associate to the share.

        If null is passed for the metadata it will clear the metadata associated to the share.

        Code Samples

        Set the metadata to "share:updatedMetadata"

         shareAsyncClient.setMetadata(Collections.singletonMap("share", "updatedMetadata")).doOnSuccess(response ->
             System.out.println("Setting the share metadata completed.")
         );
         

        Clear the metadata of the share

         shareAsyncClient.setMetadata(null).doOnSuccess(response ->
             System.out.println("Setting the share metadata completed.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        metadata - Metadata to set on the share, if null is passed the metadata for the share is cleared
        Returns:
        The information about the share
        Throws:
        ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
      • setMetadataWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setMetadataWithResponse​(Map<String,​String> metadata)
        Sets the user-defined metadata to associate to the share.

        If null is passed for the metadata it will clear the metadata associated to the share.

        Code Samples

        Set the metadata to "share:updatedMetadata"

         shareAsyncClient.setMetadata(Collections.singletonMap("share", "updatedMetadata")).doOnSuccess(response ->
             System.out.println("Setting the share metadata completed.")
         );
         

        Clear the metadata of the share

         shareAsyncClient.setMetadata(null).doOnSuccess(response ->
             System.out.println("Setting the share metadata completed.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        metadata - Metadata to set on the share, if null is passed the metadata for the share is cleared
        Returns:
        A response containing the information about the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
      • setMetadataWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setMetadataWithResponse​(ShareSetMetadataOptions options)
        Sets the user-defined metadata to associate to the share.

        If null is passed for the metadata it will clear the metadata associated to the share.

        Code Samples

         shareAsyncClient.setMetadataWithResponse(new ShareSetMetadataOptions()
             .setMetadata(Collections.singletonMap("share", "updatedMetadata"))
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(response ->
                 System.out.printf("Setting the share metadata completed with status code %d", response.getStatusCode())
             );
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareSetMetadataOptions
        Returns:
        A response containing the information about the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
      • getAccessPolicy

        public com.azure.core.http.rest.PagedFlux<ShareSignedIdentifier> getAccessPolicy()
        Retrieves stored access policies specified for the share.

        Code Samples

        List the stored access policies

         shareAsyncClient.getAccessPolicy()
             .subscribe(result -> System.out.printf("Access policy %s allows these permissions: %s", result.getId(),
                 result.getAccessPolicy().getPermissions())
             );
         

        For more information, see the Azure Docs.

        Returns:
        The stored access policies specified on the queue.
        Throws:
        ShareStorageException - If the share doesn't exist
      • getAccessPolicy

        public com.azure.core.http.rest.PagedFlux<ShareSignedIdentifier> getAccessPolicy​(ShareGetAccessPolicyOptions options)
        Retrieves stored access policies specified for the share.

        Code Samples

        List the stored access policies

         shareAsyncClient.getAccessPolicy(new ShareGetAccessPolicyOptions()
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(result -> System.out.printf("Access policy %s allows these permissions: %s", result.getId(),
                 result.getAccessPolicy().getPermissions())
             );
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareGetAccessPolicyOptions
        Returns:
        The stored access policies specified on the queue.
        Throws:
        ShareStorageException - If the share doesn't exist
      • setAccessPolicy

        public Mono<ShareInfo> setAccessPolicy​(List<ShareSignedIdentifier> permissions)
        Sets stored access policies for the share.

        Code Samples

        Set a read only stored access policy

         ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
             .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
             .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
        
         ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
         shareAsyncClient.setAccessPolicy(Collections.singletonList(permission)).doOnSuccess(
             response -> System.out.println("Setting access policies completed."));
         

        For more information, see the Azure Docs.

        Parameters:
        permissions - Access policies to set on the queue
        Returns:
        The information about the share
        Throws:
        ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
      • setAccessPolicyWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setAccessPolicyWithResponse​(List<ShareSignedIdentifier> permissions)
        Sets stored access policies for the share.

        Code Samples

        Set a read only stored access policy

         ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
             .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
             .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
        
         ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
         shareAsyncClient.setAccessPolicyWithResponse(Collections.singletonList(permission))
             .subscribe(response -> System.out.printf("Setting access policies completed completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        permissions - Access policies to set on the queue
        Returns:
        A response containing the information about the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
      • setAccessPolicyWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareInfo>> setAccessPolicyWithResponse​(ShareSetAccessPolicyOptions options)
        Sets stored access policies for the share.

        Code Samples

        Set a read only stored access policy

         ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
             .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
             .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
        
         ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
         shareAsyncClient.setAccessPolicyWithResponse(new ShareSetAccessPolicyOptions()
             .setPermissions(Collections.singletonList(permission))
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(response -> System.out.printf("Setting access policies completed completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareSetAccessPolicyOptions
        Returns:
        A response containing the information about the share with headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
      • getStatistics

        public Mono<ShareStatistics> getStatistics()
        Retrieves storage statistics about the share.

        Code Samples

        Retrieve the storage statistics

         shareAsyncClient.getStatistics().doOnSuccess(response -> System.out.printf("The share is using %d GB",
             response.getShareUsageInGB()));
         

        For more information, see the Azure Docs.

        Returns:
        The storage statistics of the share
      • getStatisticsWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareStatistics>> getStatisticsWithResponse()
        Retrieves storage statistics about the share.

        Code Samples

        Retrieve the storage statistics

         shareAsyncClient.getStatisticsWithResponse().subscribe(response -> System.out.printf("The share is using %d GB",
             response.getValue().getShareUsageInGB()));
         

        For more information, see the Azure Docs.

        Returns:
        A response containing the storage statistics of the share with headers and response status code
      • getStatisticsWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareStatistics>> getStatisticsWithResponse​(ShareGetStatisticsOptions options)
        Retrieves storage statistics about the share.

        Code Samples

        Retrieve the storage statistics

         shareAsyncClient.getStatisticsWithResponse(new ShareGetStatisticsOptions()
             .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))
             .subscribe(response -> System.out.printf("The share is using %d GB",
             response.getValue().getShareUsageInGB()));
         

        For more information, see the Azure Docs.

        Parameters:
        options - ShareGetStatisticsOptions
        Returns:
        A response containing the storage statistics of the share with headers and response status code
      • createDirectory

        public Mono<ShareDirectoryAsyncClient> createDirectory​(String directoryName)
        Creates the directory in the share with the given name.

        Code Samples

        Create the directory "mydirectory"

         shareAsyncClient.createDirectory("mydirectory").subscribe(
             response -> {
             },
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the directory!")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        directoryName - Name of the directory
        Returns:
        The ShareDirectoryAsyncClient to interact with the created directory.
        Throws:
        ShareStorageException - If the share doesn't exist, the directory already exists or is in the process of being deleted, or the parent directory for the new directory doesn't exist
      • createDirectoryWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareDirectoryAsyncClient>> createDirectoryWithResponse​(String directoryName,
                                                                                                              FileSmbProperties smbProperties,
                                                                                                              String filePermission,
                                                                                                              Map<String,​String> metadata)
        Creates the directory in the share with the given name and associates the passed metadata to it.

        Code Samples

        Create the directory "documents" with metadata "directory:metadata"

         FileSmbProperties smbProperties = new FileSmbProperties();
         String filePermission = "filePermission";
         shareAsyncClient.createDirectoryWithResponse("documents", smbProperties, filePermission,
             Collections.singletonMap("directory", "metadata"))
             .subscribe(response -> System.out.printf("Creating the directory completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        directoryName - Name of the directory
        smbProperties - The SMB properties of the directory.
        filePermission - The file permission of the directory.
        metadata - Optional metadata to associate with the directory
        Returns:
        A response containing a ShareDirectoryAsyncClient to interact with the created directory and the status of its creation.
        Throws:
        ShareStorageException - If the share doesn't exist, the directory already exists or is in the process of being deleted, the parent directory for the new directory doesn't exist, or the metadata is using an illegal key name.
      • createFile

        public Mono<ShareFileAsyncClient> createFile​(String fileName,
                                                     long maxSize)
        Creates the file in the share with the given name and file max size.

        Code Samples

        Create the file "myfile" with size of 1024 bytes.

         shareAsyncClient.createFile("myfile", 1024).subscribe(
             response -> {
             },
             error -> System.err.print(error.toString()),
             () -> System.out.println("Complete creating the directory!")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        maxSize - The maximum size in bytes for the file.
        Returns:
        The ShareFileAsyncClient to interact with the created file.
        Throws:
        ShareStorageException - If one of the following cases happen:
        • If the share or parent directory does not exist.
        • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
      • createFileWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareFileAsyncClient>> createFileWithResponse​(String fileName,
                                                                                                    long maxSize,
                                                                                                    ShareFileHttpHeaders httpHeaders,
                                                                                                    FileSmbProperties smbProperties,
                                                                                                    String filePermission,
                                                                                                    Map<String,​String> metadata)
        Creates the file in the share with the given name, file max size and associates the passed properties to it.

        Code Samples

        Create the file "myfile" with length of 1024 bytes, some headers, file smb properties and metadata

         ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
             .setContentType("text/html")
             .setContentEncoding("gzip")
             .setContentLanguage("en")
             .setCacheControl("no-transform")
             .setContentDisposition("attachment");
         FileSmbProperties smbProperties = new FileSmbProperties()
             .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
             .setFileCreationTime(OffsetDateTime.now())
             .setFileLastWriteTime(OffsetDateTime.now())
             .setFilePermissionKey("filePermissionKey");
         String filePermission = "filePermission";
         // NOTE: filePermission and filePermissionKey should never be both set
         shareAsyncClient.createFileWithResponse("myfile", 1024, httpHeaders, smbProperties,
             filePermission, Collections.singletonMap("directory", "metadata"))
             .subscribe(response -> System.out.printf("Creating the file completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        maxSize - The maximum size in bytes for the file.
        httpHeaders - The user settable file http headers.
        smbProperties - The user settable file smb properties.
        filePermission - The file permission of the file.
        metadata - Optional name-value pairs associated with the file as metadata.
        Returns:
        A response containing a ShareFileAsyncClient to interact with the created file and the status of its creation.
        Throws:
        ShareStorageException - If one of the following cases happen:
        • If the share or parent directory does not exist.
        • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
      • createFileWithResponse

        public Mono<com.azure.core.http.rest.Response<ShareFileAsyncClient>> createFileWithResponse​(String fileName,
                                                                                                    long maxSize,
                                                                                                    ShareFileHttpHeaders httpHeaders,
                                                                                                    FileSmbProperties smbProperties,
                                                                                                    String filePermission,
                                                                                                    Map<String,​String> metadata,
                                                                                                    ShareRequestConditions requestConditions)
        Creates the file in the share with the given name, file max size and associates the passed properties to it.

        Code Samples

        Create the file "myfile" with length of 1024 bytes, some headers, file smb properties and metadata

         ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
             .setContentType("text/html")
             .setContentEncoding("gzip")
             .setContentLanguage("en")
             .setCacheControl("no-transform")
             .setContentDisposition("attachment");
         FileSmbProperties smbProperties = new FileSmbProperties()
             .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
             .setFileCreationTime(OffsetDateTime.now())
             .setFileLastWriteTime(OffsetDateTime.now())
             .setFilePermissionKey("filePermissionKey");
         String filePermission = "filePermission";
         // NOTE: filePermission and filePermissionKey should never be both set
        
         ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
        
         shareAsyncClient.createFileWithResponse("myfile", 1024, httpHeaders, smbProperties,
             filePermission, Collections.singletonMap("directory", "metadata"), requestConditions)
             .subscribe(response -> System.out.printf("Creating the file completed with status code %d",
                 response.getStatusCode()));
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        maxSize - The maximum size in bytes for the file.
        httpHeaders - The user settable file http headers.
        smbProperties - The user settable file smb properties.
        filePermission - The file permission of the file.
        metadata - Optional name-value pairs associated with the file as metadata.
        requestConditions - ShareRequestConditions
        Returns:
        A response containing a ShareFileAsyncClient to interact with the created file and the status of its creation.
        Throws:
        ShareStorageException - If one of the following cases happen:
        • If the share or parent directory does not exist.
        • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
      • deleteDirectory

        public Mono<Void> deleteDirectory​(String directoryName)
        Deletes the specified directory in the share.

        Code Samples

        Delete the directory "mydirectory"

         shareAsyncClient.deleteDirectory("mydirectory").subscribe(
             response -> {
             },
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the directory.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        directoryName - Name of the directory
        Returns:
        An empty response
        Throws:
        ShareStorageException - If the share doesn't exist or the directory isn't empty
      • deleteDirectoryWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteDirectoryWithResponse​(String directoryName)
        Deletes the specified directory in the share.

        Code Samples

        Delete the directory "mydirectory"

         shareAsyncClient.deleteDirectory("mydirectory").subscribe(
             response -> {
             },
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the directory.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        directoryName - Name of the directory
        Returns:
        A response that only contains headers and response status code
        Throws:
        ShareStorageException - If the share doesn't exist or the directory isn't empty
      • deleteFile

        public Mono<Void> deleteFile​(String fileName)
        Deletes the specified file in the share.

        Code Samples

        Delete the file "myfile"

         shareAsyncClient.deleteFile("myfile").subscribe(
             response -> {
             },
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the file.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        Returns:
        A empty response
        Throws:
        ShareStorageException - If the share or the file doesn't exist.
      • deleteFileWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteFileWithResponse​(String fileName)
        Deletes the specified file in the share.

        Code Samples

        Delete the file "myfile"

         shareAsyncClient.deleteFile("myfile").subscribe(
             response -> {
             },
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the file.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        Returns:
        A response that only contains headers and response status code
        Throws:
        ShareStorageException - If the share or the file doesn't exist.
      • deleteFileWithResponse

        public Mono<com.azure.core.http.rest.Response<Void>> deleteFileWithResponse​(String fileName,
                                                                                    ShareRequestConditions requestConditions)
        Deletes the specified file in the share.

        Code Samples

        Delete the file "myfile"

         ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
         shareAsyncClient.deleteFileWithResponse("myfile", requestConditions).subscribe(
             response -> {
             },
             error -> System.err.println(error.toString()),
             () -> System.out.println("Complete deleting the file.")
         );
         

        For more information, see the Azure Docs.

        Parameters:
        fileName - Name of the file.
        requestConditions - ShareRequestConditions
        Returns:
        A response that only contains headers and response status code
        Throws:
        ShareStorageException - If the share or the file doesn't exist.
      • createPermission

        public Mono<String> createPermission​(String filePermission)
        Creates a permission at the share level. If a permission already exists, it returns the key of it, else creates a new permission and returns the key.

        Code Samples

         shareAsyncClient.createPermission("filePermission").subscribe(
             response -> System.out.printf("The file permission key is %s", response));
         
        Parameters:
        filePermission - The file permission to get/create.
        Returns:
        The file permission key associated with the file permission.
      • createPermissionWithResponse

        public Mono<com.azure.core.http.rest.Response<String>> createPermissionWithResponse​(String filePermission)
        Creates a permission at the share level. If a permission already exists, it returns the key of it, else creates a new permission and returns the key.

        Code Samples

         shareAsyncClient.createPermissionWithResponse("filePermission").subscribe(
             response -> System.out.printf("The file permission key is %s", response.getValue()));
         
        Parameters:
        filePermission - The file permission to get/create.
        Returns:
        A response that contains the file permission key associated with the file permission.
      • getPermission

        public Mono<String> getPermission​(String filePermissionKey)
        Gets a permission for a given key.

        Code Samples

         shareAsyncClient.getPermission("filePermissionKey").subscribe(
             response -> System.out.printf("The file permission is %s", response));
         
        Parameters:
        filePermissionKey - The file permission key.
        Returns:
        The file permission associated with the file permission key.
      • getPermissionWithResponse

        public Mono<com.azure.core.http.rest.Response<String>> getPermissionWithResponse​(String filePermissionKey)
        Gets a permission for a given key.

        Code Samples

         shareAsyncClient.getPermissionWithResponse("filePermissionKey").subscribe(
             response -> System.out.printf("The file permission is %s", response.getValue()));
         
        Parameters:
        filePermissionKey - The file permission key.
        Returns:
        A response that contains th file permission associated with the file permission key.
      • getSnapshotId

        public String getSnapshotId()
        Get snapshot id which attached to ShareAsyncClient. Return null if no snapshot id attached.

        Code Samples

        Get the share snapshot id.

         OffsetDateTime currentTime = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);
         ShareAsyncClient shareAsyncClient = new ShareClientBuilder()
             .endpoint("https://${accountName}.file.core.windows.net")
             .sasToken("${SASToken}")
             .shareName("myshare")
             .snapshot(currentTime.toString())
             .buildAsyncClient();
        
         System.out.printf("Snapshot ID: %s%n", shareAsyncClient.getSnapshotId());
         
        Returns:
        The snapshot id which is a unique DateTime value that identifies the share snapshot to its base share.
      • getShareName

        public String getShareName()
        Get share name from share client.

        Code Samples

         String shareName = shareAsyncClient.getShareName();
         System.out.println("The name of the share is " + shareName);
         
        Returns:
        The name of the share.
      • getAccountName

        public String getAccountName()
        Get associated account name.
        Returns:
        account name associated with this storage resource.
      • getHttpPipeline

        public com.azure.core.http.HttpPipeline getHttpPipeline()
        Gets the HttpPipeline powering this client.
        Returns:
        The pipeline.
      • generateSas

        public String generateSas​(ShareServiceSasSignatureValues shareServiceSasSignatureValues)
        Generates a service sas for the queue using the specified ShareServiceSasSignatureValues

        Note : The client must be authenticated via StorageSharedKeyCredential

        See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

        Code Samples

         OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
         ShareSasPermission permission = new ShareSasPermission().setReadPermission(true);
        
         ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
             .setStartTime(OffsetDateTime.now());
        
         shareAsyncClient.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
         
        Parameters:
        shareServiceSasSignatureValues - ShareServiceSasSignatureValues
        Returns:
        A String representing the SAS query parameters.
      • generateSas

        public String generateSas​(ShareServiceSasSignatureValues shareServiceSasSignatureValues,
                                  com.azure.core.util.Context context)
        Generates a service sas for the queue using the specified ShareServiceSasSignatureValues

        Note : The client must be authenticated via StorageSharedKeyCredential

        See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

        Code Samples

         OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
         ShareSasPermission permission = new ShareSasPermission().setReadPermission(true);
        
         ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
             .setStartTime(OffsetDateTime.now());
        
         // Client must be authenticated via StorageSharedKeyCredential
         shareAsyncClient.generateSas(values, new Context("key", "value"));
         
        Parameters:
        shareServiceSasSignatureValues - ShareServiceSasSignatureValues
        context - Additional context that is passed through the code when generating a SAS.
        Returns:
        A String representing the SAS query parameters.