sdk/Util/ExecutionContextBuilder.cs (45 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System.Collections.Generic; using Aliyun.OSS.Common.Authentication; using Aliyun.OSS.Common.Communication; using Aliyun.OSS.Common.Handlers; namespace Aliyun.OSS.Util { internal class ExecutionContextBuilder { public ICredentials Credentials { get; set; } public IList<IResponseHandler> ResponseHandlers { get; private set; } public HttpMethod Method { get; set; } public string Bucket { get; set; } public string Key { get; set; } public string Region { get; set; } public string Product { get; set; } public SignatureVersion SignatureVersion { get; set; } public ExecutionContextBuilder() { ResponseHandlers = new List<IResponseHandler>(); } public ExecutionContext Build() { var context = new ExecutionContext { Signer = CreateSigner(Bucket, Key, Region, Product, SignatureVersion), Credentials = Credentials }; foreach(var h in ResponseHandlers) { context.ResponseHandlers.Add(h); } return context; } private static IRequestSigner CreateSigner(string bucket, string key, string region, string product, SignatureVersion version) { var singer = OssRequestSigner.Create(version); singer.Bucket = bucket; singer.Key = key; singer.Region = region; singer.Product = product; return singer; } } }