Skip to content

Commit ed65781

Browse files
committed
Test OssClientExtensions
1 parent 8242a96 commit ed65781

File tree

6 files changed

+99
-53
lines changed

6 files changed

+99
-53
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,4 +301,5 @@ $RECYCLE.BIN/
301301

302302
# Windows shortcuts
303303
*.lnk
304-
.vscode
304+
.vscode
305+
tests/Sample/appsettings.Development.json

src/OssClientExtensions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,21 @@ public static IServiceCollection AddOssClient(this IServiceCollection services,
2424

2525
return services;
2626
}
27+
28+
public static IServiceCollection AddOssClient(this IServiceCollection services,
29+
IConfigurationSection ossClientConf,
30+
ClientConfiguration config = null)
31+
{
32+
var ossClientOptions = new OssClientOptions();
33+
ossClientConf.Bind(ossClientOptions);
34+
35+
return
36+
AddOssClient(services, options =>
37+
{
38+
options.AccessKeyId = ossClientOptions.AccessKeyId;
39+
options.AccessKeySecret = ossClientOptions.AccessKeySecret;
40+
options.SecurityToken = ossClientOptions.SecurityToken;
41+
}, config);
42+
}
2743
}
2844
}

src/OssClientOptions.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Cuiliang.AliyunOssSdk
2+
{
3+
public class OssClientOptions
4+
{
5+
public string AccessKeyId { get; set; }
6+
public string AccessKeySecret { get; set; }
7+
public string SecurityToken { get; internal set; }
8+
}
9+
}

tests/Sample/NewSdkTester.cs

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
using Cuiliang.AliyunOssSdk;
22
using Cuiliang.AliyunOssSdk.Entites;
3+
using Microsoft.Extensions.Configuration;
4+
using Microsoft.Extensions.DependencyInjection;
35
using System;
46
using System.Collections.Generic;
7+
using System.IO;
58
using System.Net;
69
using System.Text;
710
using System.Threading.Tasks;
@@ -10,50 +13,48 @@ namespace Sample
1013
{
1114
class NewSdkTester
1215
{
13-
public static string AccessKeyId = "******"; // 设置您的AccessKeyId
14-
internal static string AssessSecret = "******"; //设置您的AssessSecret
1516
internal static string BucketName = "testbucket"; //设置要操作的BucketName
1617

17-
internal static string Region = OssRegions.ShangHai; //设置要操作的区域
18-
19-
20-
18+
internal static string Region = OssRegions.HangZhou; //设置要操作的区域
2119

2220

2321
public static async Task RunAsync()
2422
{
23+
var conf = new ConfigurationBuilder()
24+
.SetBasePath(Directory.GetCurrentDirectory())
25+
.AddJsonFile("appsettings.json", true, true)
26+
.AddJsonFile("appsettings.Development.json", true, true)
27+
.Build();
2528

29+
IServiceCollection services = new ServiceCollection();
2630

31+
services.AddOssClient(conf.GetSection("ossClient"));
2732

28-
var crediential = new OssCredential()
29-
{
30-
AccessKeyId = AccessKeyId,
31-
AccessKeySecret = AssessSecret
32-
};
33+
var sp = services.BuildServiceProvider();
3334

34-
var client = new OssClient(crediential);
35+
var client = sp.GetService<OssClient>();
3536

3637
////list buckets
37-
//var listBucketResult = await client.ListBucketsAsync(OssRegions.ShangHai);
38-
//Console.WriteLine(listBucketResult.IsSuccess + ":" + listBucketResult.ErrorMessage);
38+
var listBucketResult = await client.ListBucketsAsync(OssRegions.HangZhou);
39+
Console.WriteLine(listBucketResult.IsSuccess + ":" + listBucketResult.ErrorMessage);
3940

4041
var bucket = BucketInfo.CreateByRegion(Region, BucketName, false, false);
4142

4243
// put string
43-
{
44-
string content = "这是一个文本文件\naaaaaaaa\nbbbbbb\nccccccccc";
45-
var putResult = await client.PutObjectAsync(bucket, "test_put_object_string.txt", content);
46-
Console.WriteLine($"Put string object {putResult.IsSuccess} {putResult.ErrorMessage} Etag:{putResult.SuccessResult?.ETag}");
47-
}
44+
// {
45+
// string content = "这是一个文本文件\naaaaaaaa\nbbbbbb\nccccccccc";
46+
// var putResult = await client.PutObjectAsync(bucket, "test_put_object_string.txt", content);
47+
// Console.WriteLine($"Put string object {putResult.IsSuccess} {putResult.ErrorMessage} Etag:{putResult.SuccessResult?.ETag}");
48+
// }
49+
4850

49-
5051

51-
// put file
52-
{
53-
var file = @"D:\Work\Weixin\resource\IMG_1399.png";
54-
var putResult = await client.PutObjectByFileNameAsync(bucket, "test_put_file.png", file);
55-
Console.WriteLine($"Put file object {putResult.IsSuccess} {putResult.ErrorMessage} Etag:{putResult.SuccessResult?.ETag}");
56-
}
52+
// // put file
53+
// {
54+
// var file = @"D:\Work\Weixin\resource\IMG_1399.png";
55+
// var putResult = await client.PutObjectByFileNameAsync(bucket, "test_put_file.png", file);
56+
// Console.WriteLine($"Put file object {putResult.IsSuccess} {putResult.ErrorMessage} Etag:{putResult.SuccessResult?.ETag}");
57+
// }
5758

5859
//// copy file
5960
//Console.WriteLine("\n\n===Copy Object=============");
@@ -138,32 +139,32 @@ public static async Task RunAsync()
138139

139140
// head object
140141
// delete multiple
141-
Console.WriteLine("\n\n===head object=============");
142-
{
143-
var content = "This is a line 这是一行字符串.";
144-
var key = "test_head_object.txt";
145-
//var putResult = await client.PutObjectAsync(bucket, key, content);
146-
//if (putResult.IsSuccess)
147-
{
148-
var headResult = await client.HeadObjectAsync(bucket, key, null);
149-
Console.WriteLine($"Head object: {headResult.IsSuccess} {headResult.ErrorMessage}");
150-
}
151-
152-
}
153-
154-
155-
Console.WriteLine("\n\n===Get object meta=============");
156-
{
157-
//var content = "This is a line 这是一行字符串.";
158-
var key = "test_get_meta_object.txt";
159-
//var putResult = await client.PutObjectAsync(bucket, key, content);
160-
//if (putResult.IsSuccess)
161-
{
162-
var headResult = await client.GetObjectMetaAsync(bucket, key);
163-
Console.WriteLine($"Head object: {headResult.IsSuccess} {headResult.ErrorMessage}");
164-
}
165-
166-
}
142+
// Console.WriteLine("\n\n===head object=============");
143+
// {
144+
// var content = "This is a line 这是一行字符串.";
145+
// var key = "test_head_object.txt";
146+
// //var putResult = await client.PutObjectAsync(bucket, key, content);
147+
// //if (putResult.IsSuccess)
148+
// {
149+
// var headResult = await client.HeadObjectAsync(bucket, key, null);
150+
// Console.WriteLine($"Head object: {headResult.IsSuccess} {headResult.ErrorMessage}");
151+
// }
152+
153+
// }
154+
155+
156+
// Console.WriteLine("\n\n===Get object meta=============");
157+
// {
158+
// //var content = "This is a line 这是一行字符串.";
159+
// var key = "test_get_meta_object.txt";
160+
// //var putResult = await client.PutObjectAsync(bucket, key, content);
161+
// //if (putResult.IsSuccess)
162+
// {
163+
// var headResult = await client.GetObjectMetaAsync(bucket, key);
164+
// Console.WriteLine($"Head object: {headResult.IsSuccess} {headResult.ErrorMessage}");
165+
// }
166+
167+
// }
167168

168169
}
169170
}

tests/Sample/Sample.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,9 @@
66
<ItemGroup>
77
<ProjectReference Include="..\..\src\Cuiliang.AliyunOssSdk.csproj" />
88
</ItemGroup>
9+
<ItemGroup>
10+
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.0" />
11+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.0" />
12+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.0" />
13+
</ItemGroup>
914
</Project>

tests/Sample/appsettings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"Logging": {
3+
"IncludeScopes": false,
4+
"Console": {
5+
"LogLevel": {
6+
"Default": "Debug"
7+
}
8+
}
9+
},
10+
"ossClient": {
11+
"accessKeyId": "",
12+
"accessKeySecret": ""
13+
}
14+
}

0 commit comments

Comments
 (0)