Amazon.Glacier.Transfer.Internal.DownloadFileCommand.ExecuteAsync C# (CSharp) Method

ExecuteAsync() private method

private ExecuteAsync ( ) : System.Threading.Task
return System.Threading.Task
        internal async Task ExecuteAsync()
        {
            await this.setupTopicAndQueueAsync().ConfigureAwait(false);
            try
            {
                var jobId = await initiateJobAsync().ConfigureAwait(false);
                await processQueueAsync(jobId).ConfigureAwait(false);
            }
            finally
            {
                this.tearDownTopicAndQueueAsync().Wait();
            }
        }
        async Task processQueueAsync(string jobId)

Usage Example

 /// <summary>
 /// <para>
 /// Downloads an archive from Amazon Glacier from the specified vault for the
 /// current user's account. Saves the archive to the specified file. 
 /// </para>
 ///
 /// <para>
 /// This method creates an Amazon SNS topic, and an Amazon SQS queue that is subscribed 
 /// to that topic.  It then initiates the archive retrieval job and polls the queue
 /// for the archive to be available.  This polling takes about 4 hours. Once the archive
 /// is available, download will begin.
 /// </para>
 ///
 /// <para>
 /// Additional options can be set using the UploadDirectoryOptions object. For example, you
 /// can set the FilesTransferProgress property to a delegate to track progress.  
 /// </para>
 /// </summary>
 /// <param name="filePath">The file path to save the archive at.</param>
 /// <param name="vaultName">The name of the vault to download the archive from.</param>
 /// <param name="archiveId">The unique ID of the archive to download.</param>
 /// <param name="options">Additional options that can be used for the download.</param>
 public Task DownloadAsync(string vaultName, string archiveId, string filePath, DownloadOptions options)
 {
     var command = new DownloadFileCommand(this, vaultName, archiveId, filePath, options);
     return command.ExecuteAsync();
 }