Skip to content

Commit 2692567

Browse files
authored
Merge pull request #5 from cnblogs/v0.3.1
Tweak in v0.3.1
2 parents 6b989a7 + 1f2424a commit 2692567

15 files changed

+61
-48
lines changed

src/Api/Base/BaseObjectCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Cuiliang.AliyunOssSdk.Api.Base
77
/// 对某个对象进行的操作的命令基类,主要是保存了Bucket信息和key
88
/// </summary>
99
/// <typeparam name="TResult"></typeparam>
10-
public abstract class BaseObjectCommand<TResult>: BaseOssCommand<TResult>
10+
public abstract class BaseObjectCommand<TResult> : BaseOssCommand<TResult>
1111
{
1212
/// <summary>
1313
/// 对象所处的Bucket
@@ -19,7 +19,7 @@ public abstract class BaseObjectCommand<TResult>: BaseOssCommand<TResult>
1919
/// </summary>
2020
public string Key { get; set; }
2121

22-
public BaseObjectCommand(RequestContext requestContext,
22+
public BaseObjectCommand(RequestContext requestContext,
2323
BucketInfo bucket,
2424
string key) : base(requestContext)
2525
{

src/Api/Base/BaseOssCommand.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,7 @@ private async Task<OssResult<TResult>> ProcessResponseInternal(HttpResponseMessa
126126
// SerializeHelper.Deserialize<ErrorResult>(responseContent);
127127

128128
var responseContent = await response.Content.ReadAsStringAsync();
129-
var errorResult =
130-
131-
SerializeHelper.Deserialize<ErrorResult>(responseContent);
132-
129+
var errorResult = SerializeHelper.Deserialize<ErrorResult>(responseContent);
133130

134131
return new OssResult<TResult>()
135132
{

src/Api/Bucket/List/ListBucketCommand.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ public ListBucketCommand(RequestContext requestContext, string region, ListBucke
1919

2020
public override ServiceRequest BuildRequest()
2121
{
22-
2322
var req = new ServiceRequest(BucketInfo.CreateByRegion(_region, ""), "", HttpMethod.Get);
2423

25-
//
2624
req.AddParameter(RequestParameters.PREFIX, _request.Prefix);
2725
req.AddParameter(RequestParameters.MARKER, _request.Marker);
2826
req.AddParameter(RequestParameters.MAX_KEYS, _request.MaxKeys?.ToString());

src/Api/Object/Append/AppendObjectCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public override ServiceRequest BuildRequest()
6767
return req;
6868
}
6969

70-
public override async Task<OssResult<AppentObjectResult>> ParseResultAsync(HttpResponseMessage response)
70+
public override Task<OssResult<AppentObjectResult>> ParseResultAsync(HttpResponseMessage response)
7171
{
7272
var result = new AppentObjectResult();
7373
result.ETag = response.Headers.ETag?.ToString();
@@ -83,7 +83,7 @@ public override async Task<OssResult<AppentObjectResult>> ParseResultAsync(HttpR
8383
result.HashCrc64Ecma = Convert.ToUInt64(response.Headers.GetValues(HttpHeaders.HashCrc64Ecma).FirstOrDefault());
8484
}
8585

86-
return new OssResult<AppentObjectResult>(result);
86+
return Task.FromResult(new OssResult<AppentObjectResult>(result));
8787
}
8888
}
8989
}

src/Api/Object/Delete/DeleteObjectCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ public override ServiceRequest BuildRequest()
1919
return req;
2020
}
2121

22-
public override async Task<OssResult<DeleteObjectResult>> ParseResultAsync(HttpResponseMessage response)
22+
public override Task<OssResult<DeleteObjectResult>> ParseResultAsync(HttpResponseMessage response)
2323
{
24-
return new OssResult<DeleteObjectResult>(new DeleteObjectResult());
24+
return Task.FromResult(new OssResult<DeleteObjectResult>(new DeleteObjectResult()));
2525
}
2626
}
2727
}

src/Api/Object/Get/GetObjectCommand.cs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,24 @@ namespace Cuiliang.AliyunOssSdk.Api.Object.Get
1414
{
1515
public class GetObjectCommand : BaseObjectCommand<GetObjectResult>
1616
{
17-
18-
1917
public GetObjectParams Params { get; set; }
2018

21-
22-
23-
///
24-
2519
public GetObjectCommand(
2620
RequestContext requestContext,
2721
BucketInfo bucket,
2822
string key,
29-
GetObjectParams parameters
30-
) : base(requestContext, bucket, key)
23+
GetObjectParams parameters) : base(requestContext, bucket, key)
3124
{
3225
Params = parameters;
3326
}
3427

3528
public override ServiceRequest BuildRequest()
3629
{
37-
3830
var req = new ServiceRequest(Bucket, Key, HttpMethod.Get);
39-
4031
Params?.SetupRequest(req);
41-
4232
return req;
4333
}
4434

45-
46-
4735
public override async Task<OssResult<GetObjectResult>> ParseResultAsync(HttpResponseMessage response)
4836
{
4937
var result = new GetObjectResult();
@@ -60,7 +48,6 @@ public override async Task<OssResult<GetObjectResult>> ParseResultAsync(HttpResp
6048

6149
private ObjectMetadata Deserialize(HttpResponseMessage response)
6250
{
63-
6451
var metadata = new ObjectMetadata();
6552
foreach (var header in response.Headers)
6653
{

src/Api/Object/GetMeta/GetObjectMetaCommand.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ public override ServiceRequest BuildRequest()
2121
return req;
2222
}
2323

24-
public override async Task<OssResult<GetObjectMetaResult>> ParseResultAsync(HttpResponseMessage response)
24+
public override Task<OssResult<GetObjectMetaResult>> ParseResultAsync(HttpResponseMessage response)
2525
{
26-
return new OssResult<GetObjectMetaResult>(new GetObjectMetaResult()
26+
var result = new OssResult<GetObjectMetaResult>(new GetObjectMetaResult()
2727
{
2828
Headers = response.Headers
2929
});
30+
31+
return Task.FromResult(result);
3032
}
3133
}
3234
}

src/Api/Object/Head/HeadObjectCommand.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66

77
namespace Cuiliang.AliyunOssSdk.Api.Object.Head
88
{
9-
public class HeadObjectCommand:BaseObjectCommand<HeadObjectResult>
9+
public class HeadObjectCommand : BaseObjectCommand<HeadObjectResult>
1010
{
11-
12-
1311
public HeadObjectCommand(RequestContext requestContext, BucketInfo bucket, string key, HeadObjectParams parameters) : base(requestContext, bucket, key)
1412
{
1513
Parameters = parameters;
@@ -26,12 +24,14 @@ public override ServiceRequest BuildRequest()
2624
return req;
2725
}
2826

29-
public override async Task<OssResult<HeadObjectResult>> ParseResultAsync(HttpResponseMessage response)
27+
public override Task<OssResult<HeadObjectResult>> ParseResultAsync(HttpResponseMessage response)
3028
{
31-
return new OssResult<HeadObjectResult>(new HeadObjectResult()
29+
var result = new OssResult<HeadObjectResult>(new HeadObjectResult()
3230
{
3331
Headers = response.Headers
3432
});
33+
34+
return Task.FromResult(result);
3535
}
3636
}
3737
}

src/Api/Object/Put/PutObjectCommand.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@ public PutObjectCommand(RequestContext requestContext, BucketInfo bucketInfo, st
2727

2828
public override ServiceRequest BuildRequest()
2929
{
30-
var req = new ServiceRequest(Bucket, Key, HttpMethod.Put);
31-
30+
var req = new ServiceRequest(Bucket, Key, HttpMethod.Put);
3231

33-
// headers
3432
if (ExtraHeaders != null)
3533
{
3634
foreach (var pair in ExtraHeaders)
@@ -41,7 +39,6 @@ public override ServiceRequest BuildRequest()
4139

4240
RequestContent.Metadata?.Populate(req.Headers);
4341

44-
//
4542
req.ContentMd5 = RequestContent.ContentMd5;
4643

4744
if (RequestContent.ContentType == RequestContentType.Stream)
@@ -60,19 +57,19 @@ public override ServiceRequest BuildRequest()
6057
return req;
6158
}
6259

63-
public override async Task<OssResult<PutObjectResult>> ParseResultAsync(HttpResponseMessage response)
60+
public override Task<OssResult<PutObjectResult>> ParseResultAsync(HttpResponseMessage response)
6461
{
6562
var result = new PutObjectResult();
6663
if (response.Headers.Contains(HttpHeaders.ETag))
6764
{
6865
result.ETag = OssUtils.TrimQuotes(response.Headers.ETag.ToString());
6966
}
7067

71-
return new OssResult<PutObjectResult>()
68+
return Task.FromResult(new OssResult<PutObjectResult>()
7269
{
7370
IsSuccess = true,
7471
SuccessResult = result
75-
};
72+
});
7673
}
7774
}
7875
}

src/Api/Object/PutAcl/PutObjectACLCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ public override ServiceRequest BuildRequest()
2121

2222
req.Parameters.Add("acl", "");
2323

24-
//
2524
req.Headers.Add("x-oss-object-acl", AclType);
2625

2726
return req;
2827
}
2928

30-
public override async Task<OssResult<EmptyResult>> ParseResultAsync(HttpResponseMessage response)
29+
public override Task<OssResult<EmptyResult>> ParseResultAsync(HttpResponseMessage response)
3130
{
32-
return new OssResult<EmptyResult>(new EmptyResult());
31+
return Task.FromResult(new OssResult<EmptyResult>(new EmptyResult()));
3332
}
3433
}
3534
}

src/Cuiliang.AliyunOssSdk.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@
1414
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.1.1" />
1515
<PackageReference Include="Microsoft.Extensions.Http" Version="2.1.1" />
1616
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.1" />
17+
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.1" />
1718
</ItemGroup>
1819
</Project>

src/OssClient.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using Cuiliang.AliyunOssSdk.Request;
2020
using Cuiliang.AliyunOssSdk.Utility;
2121
using Cuiliang.AliyunOssSdk.Utility.Authentication;
22+
using Microsoft.Extensions.Logging;
2223

2324
namespace Cuiliang.AliyunOssSdk
2425
{
@@ -29,11 +30,13 @@ public class OssClient
2930
{
3031
private readonly HttpClient _client;
3132
private readonly RequestContext _requestContext;
33+
private readonly ILogger _logger;
3234

33-
public OssClient(HttpClient client, RequestContext requestContext)
35+
public OssClient(HttpClient client, RequestContext requestContext, ILoggerFactory loggerFactory)
3436
{
3537
_client = client;
3638
_requestContext = requestContext;
39+
_logger = loggerFactory.CreateLogger<OssClient>();
3740
}
3841

3942
/// <summary>
@@ -57,7 +60,14 @@ public async Task<OssResult<PutObjectResult>> PutObjectAsync(BucketInfo bucket,
5760
{
5861
var cmd = new PutObjectCommand(_requestContext, bucket, key, file, extraHeaders);
5962

60-
return await cmd.ExecuteAsync(_client);
63+
var result = await cmd.ExecuteAsync(_client);
64+
65+
if(!result.IsSuccess)
66+
{
67+
_logger.LogError($"Failed in OssClient.{nameof(PutObjectAsync)}(). \nBucket: {bucket.BucketName}\nPath: {key}");
68+
}
69+
70+
return result;
6171
}
6272

6373
/// <summary>
@@ -187,7 +197,15 @@ public async Task<OssResult<DeleteObjectResult>> DeleteObjectAsync(BucketInfo bu
187197
{
188198
var cmd = new DeleteObjectCommand(_requestContext, bucket, key);
189199

190-
return await cmd.ExecuteAsync(_client);
200+
var result = await cmd.ExecuteAsync(_client);
201+
202+
if (!result.IsSuccess)
203+
{
204+
_logger.LogError($"Failed in OssClient.{nameof(PutObjectAsync)}(). \nBucket: {bucket.BucketName}\nPath: {key}");
205+
}
206+
207+
return result;
208+
191209
}
192210

193211
/// <summary>

src/OssClientServiceCollectionExtensions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ public static IServiceCollection AddOssClient(
1818
Action<ClientConfiguration> setupClientConfiguration = null,
1919
Action<HttpClient> configureHttpClient = null)
2020
{
21-
services.Configure<OssCredential>(configuration.GetSection("ossClient"));
21+
var section = (configuration as IConfigurationSection) == null ?
22+
configuration.GetSection("ossClient") : configuration;
23+
24+
services.Configure<OssCredential>(section);
2225

2326
var clientConfiguration = new ClientConfiguration();
2427
setupClientConfiguration?.Invoke(clientConfiguration);

src/Request/RequestContext.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@ public RequestContext(IOptions<OssCredential> credentialOptions, ClientConfigura
1616
{
1717
OssCredential = credentialOptions.Value;
1818
ClientConfiguration = config;
19+
20+
if(string.IsNullOrWhiteSpace(OssCredential.AccessKeyId))
21+
{
22+
throw new ArgumentNullException(nameof(OssCredential.AccessKeyId));
23+
}
24+
25+
if (string.IsNullOrWhiteSpace(OssCredential.AccessKeySecret))
26+
{
27+
throw new ArgumentNullException(nameof(OssCredential.AccessKeySecret));
28+
}
1929
}
2030
/// <summary>
2131
/// 客户端配置

tests/Sample/Sample.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
4-
<TargetFramework>netcoreapp2.0</TargetFramework>
4+
<TargetFramework>netcoreapp2.1</TargetFramework>
55
</PropertyGroup>
66
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
77
<LangVersion>latest</LangVersion>
@@ -10,6 +10,7 @@
1010
<ProjectReference Include="..\..\src\Cuiliang.AliyunOssSdk.csproj" />
1111
</ItemGroup>
1212
<ItemGroup>
13+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
1314
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.1" />
1415
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
1516
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.1" />

0 commit comments

Comments
 (0)