-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
49 lines (39 loc) · 1.48 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using Newtonsoft.Json;
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
using Aliyun.OSS;
using Aliyun.OSS.Common;
using Sync2Oss.Services;
namespace Sync2Oss;
internal class Program
{
public static string[] Arguments { get; set; } = null!;
public static IServiceProvider Services { get; private set; } = null!;
public static void BuildServices()
{
string accessKeyId = Arguments[0];
string accessKeySecret = Arguments[1];
string endpoint = Arguments[2];
string bucketName = Arguments[3];
ServiceCollection serviceDescriptors = new();
serviceDescriptors.AddSingleton<OssClient>(_ => new OssClient(endpoint, accessKeyId, accessKeySecret,
new ClientConfiguration() { SignatureVersion = SignatureVersion.V4 }));
serviceDescriptors.AddSingleton<Dictionary<string, string>>(_ => new()
{
{ "accessKeyId", accessKeyId },
{ "accessKeySecret", accessKeySecret },
{ "endpoint", endpoint },
{ "bucketName", bucketName },
});
serviceDescriptors.AddSingleton<AliyunOssService>();
serviceDescriptors.AddSingleton<MainService>();
Services = serviceDescriptors.BuildServiceProvider();
}
static async Task Main(string[] args)
{
Arguments = args;
Console.WriteLine("Hello, World! Sync2Oss");
BuildServices();
await Services.GetService<MainService>()!.InvokeAsync();
}
}