DownloadBlob() public method

Downloads the specified blob to the specified location.
public DownloadBlob ( Uri uri, string localFile, Microsoft.WindowsAzure.MediaServices.Client.FileEncryption fileEncryption, ulong initializationVector, CancellationToken cancellationToken, IRetryPolicy retryPolicy, Func getSharedAccessSignature = null ) : Task
uri System.Uri The blob url from which file needs to be downloaded.If blob has private read permissions then appropriate sas url need to be passed
localFile string The full path where file will be saved
fileEncryption Microsoft.WindowsAzure.MediaServices.Client.FileEncryption The file encryption if file has been encrypted. Pass null if no encryption has been used
initializationVector ulong The initialization vector if encryption has been used.
cancellationToken System.Threading.CancellationToken The cancellation token.
retryPolicy IRetryPolicy The RetryPolicy delegate returns a ShouldRetry delegate, which can be used to implement a custom retry policy.RetryPolicies class can bee used to get default policies
getSharedAccessSignature Func A callback function which returns Sas signature for the file to be downloaded
return Task
        /// <summary>
        /// Downloads the file asynchronously .
        /// </summary>
        /// <param name="destinationPath">The path to download the file to.</param>
        /// <param name="blobTransferClient">The <see cref="BlobTransferClient"/> which is used to download files.</param>
        /// <param name="locator">An asset <see cref="ILocator"/> which defines permissions associated with the Asset.</param>
        /// <param name="retryPolicy">The retry policy.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>A function delegate that returns the future result to be available through the Task.</returns>
        internal Task DownloadToFileAsync(string destinationPath, BlobTransferClient blobTransferClient, ILocator locator, IRetryPolicy retryPolicy, CancellationToken cancellationToken)
        {
            FileEncryption fileEncryption = this.GetFileEncryption();

            cancellationToken.Register(() => this.Cleanup(null, fileEncryption, null, null));
            return(Task.Factory.StartNew(() =>
            {
                cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
                ulong iv = Convert.ToUInt64(this.InitializationVector, CultureInfo.InvariantCulture);
                UriBuilder uriBuilder = new UriBuilder(locator.BaseUri);
                uriBuilder.Path += String.Concat("/", Name);
                blobTransferClient.TransferProgressChanged += this.OnDownloadBlobTransferProgressChanged;

                blobTransferClient.DownloadBlob(
                    uriBuilder.Uri,
                    destinationPath,
                    fileEncryption,
                    iv,
                    cancellationToken,
                    retryPolicy,
                    () => locator.ContentAccessComponent)
                .Wait(cancellationToken);

                cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
            },
                                         cancellationToken)
                   .ContinueWith(
                       t =>
            {
                t.ThrowIfFaulted(() => this.Cleanup(null, fileEncryption, null, null));
                cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
                this.Cleanup(null, fileEncryption, null, null);
            },
                       cancellationToken));
        }
 /// <summary>
 /// Downloads the file asynchronously .
 /// </summary>
 /// <param name="destinationPath">The path to download the file to.</param>
 /// <param name="blobTransferClient">The <see cref="BlobTransferClient"/> which is used to download files.</param>
 /// <param name="locator">An asset <see cref="ILocator"/> which defines permissions associated with the Asset.</param>
 /// <param name="retryPolicy">The retry policy.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns>A function delegate that returns the future result to be available through the Task.</returns>
 internal Task DownloadToFileAsync(string destinationPath,BlobTransferClient blobTransferClient, ILocator locator, IRetryPolicy retryPolicy, CancellationToken cancellationToken)
 {
     FileEncryption fileEncryption = this.GetFileEncryption();
     cancellationToken.Register(() => this.Cleanup(null, fileEncryption, null, null));
     return Task.Factory.StartNew(() =>
     {
         cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
         ulong iv = Convert.ToUInt64(this.InitializationVector, CultureInfo.InvariantCulture);
         UriBuilder uriBuilder = new UriBuilder(locator.Path);
         uriBuilder.Path += String.Concat("/", Name);
         blobTransferClient.TransferProgressChanged += this.OnDownloadBlobTransferProgressChanged;
         blobTransferClient.DownloadBlob(uriBuilder.Uri, destinationPath, fileEncryption, iv, cancellationToken, retryPolicy).Wait(cancellationToken);
         cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
     },
             cancellationToken)
         .ContinueWith(
             t =>
             {
                 t.ThrowIfFaulted(() => this.Cleanup(null, fileEncryption, null, null));
                 cancellationToken.ThrowIfCancellationRequested(() => this.Cleanup(null, fileEncryption, null, null));
                 this.Cleanup(null, fileEncryption, null, null);
             },
             cancellationToken);
 }