From cdef8a8623d44cf68ecdb834229d2db242ab1cd7 Mon Sep 17 00:00:00 2001 From: dudu Date: Thu, 26 Jul 2018 18:35:56 +0800 Subject: [PATCH 1/5] Unversion cos_dotnet_sdk.suo --- cos_dotnet_sdk.suo | Bin 28672 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cos_dotnet_sdk.suo diff --git a/cos_dotnet_sdk.suo b/cos_dotnet_sdk.suo deleted file mode 100644 index 3ce08ab5ec3a865b66e1a1710e614d398ffd8052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 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 S7{1QUR`i5;RjKHUsQmvF@ITG~ From 9ad8e543b8d4ee978c310889281ceabec00361ae Mon Sep 17 00:00:00 2001 From: dudu Date: Thu, 26 Jul 2018 18:39:25 +0800 Subject: [PATCH 2/5] Update to .net core 2.1 --- .../QCloud.CosApi.Client.csproj | 6 +++--- .../QCloud.CosApi.Sample.csproj | 20 +++++++++---------- cos_dotnet_sdk/cos_dotnet_sdk.csproj | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj index d7019a4..df90dc5 100644 --- a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj +++ b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/QCloud.CosApi.Sample/QCloud.CosApi.Sample.csproj b/QCloud.CosApi.Sample/QCloud.CosApi.Sample.csproj index 9523946..3f5575a 100644 --- a/QCloud.CosApi.Sample/QCloud.CosApi.Sample.csproj +++ b/QCloud.CosApi.Sample/QCloud.CosApi.Sample.csproj @@ -1,4 +1,4 @@ - + Exe @@ -14,15 +14,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/cos_dotnet_sdk/cos_dotnet_sdk.csproj b/cos_dotnet_sdk/cos_dotnet_sdk.csproj index 0c1186b..404731f 100644 --- a/cos_dotnet_sdk/cos_dotnet_sdk.csproj +++ b/cos_dotnet_sdk/cos_dotnet_sdk.csproj @@ -5,7 +5,7 @@ netstandard2.0 - + From 92a0b3ef34b5f4810675d1025a6f7e8abb0a37f7 Mon Sep 17 00:00:00 2001 From: dudu Date: Sat, 28 Jul 2018 10:35:56 +0800 Subject: [PATCH 3/5] Use HttpClientFactory --- QCloud.CosApi.Client/CosClient.cs | 7 +++-- .../CosClientServiceCollectionExtensions.cs | 31 +++++++++++++++++++ .../QCloud.CosApi.Client.csproj | 2 ++ QCloud.CosApi.Sample/Program.cs | 7 ++--- 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 QCloud.CosApi.Client/CosClientServiceCollectionExtensions.cs diff --git a/QCloud.CosApi.Client/CosClient.cs b/QCloud.CosApi.Client/CosClient.cs index 216c561..81d9047 100644 --- a/QCloud.CosApi.Client/CosClient.cs +++ b/QCloud.CosApi.Client/CosClient.cs @@ -19,12 +19,15 @@ public class CosClient private CosClientOptions _cosClientOptions; private const string BASE_ADDRESS = "http://sh.file.myqcloud.com/files/v2"; private const int SIGN_EXPIRED_TIME = 180; - private readonly static HttpClient _httpClient = new HttpClient(); + private readonly HttpClient _httpClient; private readonly ILogger _logger; - public CosClient(IOptions cosClientOptions, + public CosClient( + HttpClient httpClient, + IOptions cosClientOptions, ILoggerFactory loggerFactory) { + _httpClient = httpClient; _cosClientOptions = cosClientOptions.Value; _logger = loggerFactory.CreateLogger(); } diff --git a/QCloud.CosApi.Client/CosClientServiceCollectionExtensions.cs b/QCloud.CosApi.Client/CosClientServiceCollectionExtensions.cs new file mode 100644 index 0000000..8763e0d --- /dev/null +++ b/QCloud.CosApi.Client/CosClientServiceCollectionExtensions.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.Configuration; +using QCloud.CosApi.Client; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; + +namespace Microsoft.Extensions.DependencyInjection +{ + public static class CosClientServiceCollectionExtensions + { + public static IServiceCollection AddCosClient( + this IServiceCollection services, + IConfiguration configuration, + string sectionName = "cosClient", + Action configureClient = null) + { + services.Configure(configuration.GetSection(sectionName)); + if (configureClient == null) + { + services.AddHttpClient(); + } + else + { + services.AddHttpClient(configureClient); + } + + return services; + } + } +} diff --git a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj index df90dc5..d42211d 100644 --- a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj +++ b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj @@ -6,8 +6,10 @@ + + diff --git a/QCloud.CosApi.Sample/Program.cs b/QCloud.CosApi.Sample/Program.cs index bd87014..7b73405 100644 --- a/QCloud.CosApi.Sample/Program.cs +++ b/QCloud.CosApi.Sample/Program.cs @@ -21,7 +21,7 @@ static async Task Main(string[] args) var filePath = args[0]; var conf = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) + .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true) .AddJsonFile("appsettings.Development.json", true, true) .Build(); @@ -31,9 +31,8 @@ static async Task Main(string[] args) .AddConfiguration(conf.GetSection("Logging")) .AddConsole()); - services.AddOptions(); - services.Configure(conf.GetSection("cosClient")); - services.AddSingleton(); + //services.AddOptions(); + services.AddCosClient(conf); IServiceProvider serviceProvider = services.BuildServiceProvider(); var cosClient = serviceProvider.GetService(); From 4616bd809d6aa71be6e3fc480b25ebae81e8621b Mon Sep 17 00:00:00 2001 From: dudu Date: Sat, 28 Jul 2018 14:39:08 +0800 Subject: [PATCH 4/5] Remove GeneratePackageOnBuild --- QCloud.CosApi.Client/QCloud.CosApi.Client.csproj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj index d42211d..2bcfe96 100644 --- a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj +++ b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj @@ -1,8 +1,7 @@ - + netstandard2.0 - true From b348e9dbf082eb5cb6607794869d0b204ca08e2c Mon Sep 17 00:00:00 2001 From: dudu Date: Sat, 28 Jul 2018 14:55:04 +0800 Subject: [PATCH 5/5] Add nuget meatata properties --- QCloud.CosApi.Client/QCloud.CosApi.Client.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj index 2bcfe96..092fa12 100644 --- a/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj +++ b/QCloud.CosApi.Client/QCloud.CosApi.Client.csproj @@ -2,6 +2,8 @@ netstandard2.0 + Cnblogs team + https://github.com/cnblogs/cos-donet-sdk-v4