Пример #1
0
        public async Task <string> DownloadInventoryAsync(string jobId, CancellationToken token)
        {
            var describeReq    = new DescribeJobRequest(Vault, jobId);
            var describeResult = await client.DescribeJobAsync(describeReq, token);

            var ok = false;

            while (!ok) // while job incompleted
            {
                if (describeResult.Completed)
                {
                    ok = true;
                }
                else
                {
                    await Task.Delay(Timeout, token);

                    describeResult = await client.DescribeJobAsync(describeReq, token);
                }
            }
            var req    = new GetJobOutputRequest(Vault, jobId, null);
            var result = await client.GetJobOutputAsync(req, token);

            using (var reader = new StreamReader(result.Body))
            {
                return(await reader.ReadToEndAsync());
            }
            //using (var output = new MemoryStream())
            //{
            //    await Common.CopyStreamAsync(result.Body, output, null, result.ContentLength);
            //    var reader = new StreamReader(output);
            //    ReadFromJson(reader);
            //}
        }
Пример #2
0
        internal virtual DescribeJobResponse DescribeJob(DescribeJobRequest request)
        {
            var marshaller   = DescribeJobRequestMarshaller.Instance;
            var unmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(Invoke <DescribeJobRequest, DescribeJobResponse>(request, marshaller, unmarshaller));
        }
Пример #3
0
        /// <summary>
        /// Returns information about a specific job including shipping information, job status,
        /// and other important metadata.
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the DescribeJob service method.</param>
        ///
        /// <returns>The response from the DescribeJob service method, as returned by Snowball.</returns>
        /// <exception cref="Amazon.Snowball.Model.InvalidResourceException">
        /// The specified resource can't be found. Check the information you provided in your
        /// last request, and try again.
        /// </exception>
        public DescribeJobResponse DescribeJob(DescribeJobRequest request)
        {
            var marshaller   = new DescribeJobRequestMarshaller();
            var unmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(Invoke <DescribeJobRequest, DescribeJobResponse>(request, marshaller, unmarshaller));
        }
Пример #4
0
        /// <summary>
        /// Initiates the asynchronous execution of the DescribeJob operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the DescribeJob operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <DescribeJobResponse> DescribeJobAsync(DescribeJobRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new DescribeJobRequestMarshaller();
            var unmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(InvokeAsync <DescribeJobRequest, DescribeJobResponse>(request, marshaller,
                                                                         unmarshaller, cancellationToken));
        }
Пример #5
0
        /// <summary>
        /// Initiates the asynchronous execution of the DescribeJob operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the DescribeJob operation on AmazonSnowballClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        ///
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeJob
        ///         operation.</returns>
        public IAsyncResult BeginDescribeJob(DescribeJobRequest request, AsyncCallback callback, object state)
        {
            var marshaller   = new DescribeJobRequestMarshaller();
            var unmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(BeginInvoke <DescribeJobRequest>(request, marshaller, unmarshaller,
                                                    callback, state));
        }
Пример #6
0
 public static Task <DescribeJobResponse> DescribeJobAsync(string vaultName, string jobId)
 {
     using (var client = GetGlacierClient())
     {
         DescribeJobRequest request = new DescribeJobRequest(GetAccountId(), vaultName, jobId);
         return(client.DescribeJobAsync(request));
     }
 }
Пример #7
0
        /// <summary>
        /// Initiates the asynchronous execution of the DescribeJob operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the DescribeJob operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        /// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeJob">REST API Reference for DescribeJob Operation</seealso>
        public virtual Task <DescribeJobResponse> DescribeJobAsync(DescribeJobRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = DescribeJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(InvokeAsync <DescribeJobResponse>(request, options, cancellationToken));
        }
Пример #8
0
        /// <summary>
        /// Initiates the asynchronous execution of the DescribeJob operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the DescribeJob operation on AmazonS3ControlClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        ///
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeJob
        ///         operation.</returns>
        public virtual IAsyncResult BeginDescribeJob(DescribeJobRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = DescribeJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(BeginInvoke(request, options, callback, state));
        }
Пример #9
0
        internal virtual DescribeJobResponse DescribeJob(DescribeJobRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = DescribeJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeJobResponseUnmarshaller.Instance;

            return(Invoke <DescribeJobResponse>(request, options));
        }
Пример #10
0
        public GlacierArchiveInfo ArchiveInfo(string jobId)
        {
            DescribeJobRequest describeJobRequest = new DescribeJobRequest()
            {
                AccountId = "-",
                JobId     = jobId,
                VaultName = _vault
            };

            DescribeJobResponse response = _amazonGlacierClient.DescribeJob(describeJobRequest);

            return(new GlacierArchiveInfo(response.DescribeJobResult));
        }
Пример #11
0
        public bool JobCompleted(string jobId)
        {
            DescribeJobRequest describeJobRequest = new DescribeJobRequest()
            {
                AccountId = "-",
                JobId     = jobId,
                VaultName = _vault
            };

            DescribeJobResponse response = _amazonGlacierClient.DescribeJob(describeJobRequest);

            return(response.DescribeJobResult.Completed);
        }
Пример #12
0
        private static bool IsInventoryReady(string jobId, string vaultName)
        {
            using (IAmazonGlacier client = new AmazonGlacierClient(RegionEndpoint.EUWest1))
            {
                DescribeJobRequest request = new DescribeJobRequest()
                {
                    JobId     = jobId,
                    VaultName = vaultName
                };

                DescribeJobResponse response = client.DescribeJob(request);
                return(response.Completed);
            }
        }
Пример #13
0
        /// <summary>
        /// DescribeJob接口的同步版本,获取训练任务详情
        /// </summary>
        /// <param name="req">参考<see cref="DescribeJobRequest"/></param>
        /// <returns>参考<see cref="DescribeJobResponse"/>实例</returns>
        public DescribeJobResponse DescribeJobSync(DescribeJobRequest req)
        {
            JsonResponseModel <DescribeJobResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "DescribeJob");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <DescribeJobResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
Пример #14
0
        public override async Task DownloadFileAsync(StorageFile file, Stream output, CancellationToken token, Action <TransferProgress> progressCallback)
        {
            if (file.IsFolder)
            {
                throw new NotSupportedException("Glacier is not supported directories");
            }
            string jobId;

            if (((GlacierFile)file).JobId == null)
            {
                var initReq = new InitiateJobRequest(Vault, new JobParameters {
                    ArchiveId = file.Id, Type = "archive-retrieval"
                });
                var initResult = await client.InitiateJobAsync(initReq, token);

                jobId = initResult.JobId;
                ((GlacierFile)file).JobId = jobId;
            }
            else
            {
                jobId = ((GlacierFile)file).JobId;
            }
            var describeReq    = new DescribeJobRequest(Vault, jobId);
            var describeResult = await client.DescribeJobAsync(describeReq, token);

            var ok = false;

            while (!ok) // while job incompleted
            {
                if (describeResult.Completed)
                {
                    ok = true;
                }
                else
                {
                    await Task.Delay(Timeout, token);

                    describeResult = await client.DescribeJobAsync(describeReq, token);
                }
            }
            var req    = new GetJobOutputRequest(Vault, jobId, null);
            var result = await client.GetJobOutputAsync(req, token);

            await Common.CopyStreamAsync(result.Body, output, null, result.ContentLength);
        }
Пример #15
0
        private static void HandleStatus(string[] args)
        {
            int interval;
            var region = RegionEndpoint.EnumerableAllRegions.SingleOrDefault(reg => reg.SystemName == args[2]);

            if (args.Length < 7 || !int.TryParse(args[5], out interval) || region == null)
            {
                Console.WriteLine("args should be aws_key aws_secret region vault_name job_id interval_secs output_filename");
                return;
            }
            var aws_key    = args[0];
            var aws_secret = args[1];
            var vault_name = args[3];
            var job_id     = args[4];
            var filename   = args[6];
            var creds      = new BasicAWSCredentials(aws_key, aws_secret);
            var config     = new AmazonGlacierConfig
            {
                RegionEndpoint = region,
                Timeout        = TimeSpan.FromDays(10)
            };
            var client  = new AmazonGlacierClient(creds, config);
            var descReq = new DescribeJobRequest(vault_name, job_id);

            do
            {
                Console.WriteLine("Checking status...");
                var jobStatus = client.DescribeJobAsync(descReq).Result;
                if (jobStatus.Completed)
                {
                    Console.WriteLine("Job completed.");
                    break;
                }
                Console.WriteLine($"Job incomplete.");
                Console.WriteLine($"Job status: {jobStatus.StatusCode}");
                Thread.Sleep(interval);
            } while (true);
            var retrReq          = new GetJobOutputRequest(vault_name, job_id, "bytes=0-1073741824");
            var retrievalPromise = client.GetJobOutputAsync(retrReq).Result;
            var json             = new StreamReader(retrievalPromise.Body).ReadToEnd();

            File.WriteAllText(filename, json);
            Console.WriteLine($"Output written to {filename}");
        }
Пример #16
0
 /// <summary>
 ///  查询指定作业详情
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public DescribeJobResponse DescribeJob(DescribeJobRequest request)
 {
     return(new DescribeJobExecutor().Client(this).Execute <DescribeJobResponse, DescribeJobResult, DescribeJobRequest>(request));
 }
Пример #17
0
 /// <summary>
 ///  查询指定作业详情
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public async Task <DescribeJobResponse> DescribeJob(DescribeJobRequest request)
 {
     return(await new DescribeJobExecutor().Client(this).Execute <DescribeJobResponse, DescribeJobResult, DescribeJobRequest>(request).ConfigureAwait(false));
 }