-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAmazonStorageConfiguration.cs
57 lines (50 loc) · 1.82 KB
/
AmazonStorageConfiguration.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
50
51
52
53
54
55
56
57
using System;
using SnD.Sdk.Extensions.Environment.Hosting;
namespace Snd.Sdk.Storage.Providers.Configurations
{
/// <summary>
/// Configuration for AWS S3.
/// </summary>
public sealed class AmazonStorageConfiguration
{
/// <summary>
/// AWS access key.
/// </summary>
public string AccessKey { get; init; }
/// <summary>
/// AWS secret key.
/// </summary>
public string SecretKey { get; init; }
/// <summary>
/// AWS service URL.
/// </summary>
public Uri ServiceUrl { get; init; }
/// <summary>
/// API region.
/// </summary>
public string AuthenticationRegion { get; init; }
/// <summary>
/// Signing algorithm version (v2/v4).
/// </summary>
public string SignatureVersion { get; init; }
/// <summary>
/// Force HTTP protocol.
/// </summary>
public bool UseHttp => ServiceUrl.Scheme == "http";
/// <summary>
/// Initialize from environment variables.
/// </summary>
/// <returns></returns>
public static AmazonStorageConfiguration CreateFromEnv()
{
return new AmazonStorageConfiguration
{
AccessKey = EnvironmentExtensions.GetDomainEnvironmentVariable("AWS_ACCESS_KEY_ID"),
SecretKey = EnvironmentExtensions.GetDomainEnvironmentVariable("AWS_SECRET_ACCESS_KEY"),
ServiceUrl = new Uri(EnvironmentExtensions.GetDomainEnvironmentVariable("AWS_ENDPOINT_URL")),
AuthenticationRegion = EnvironmentExtensions.GetDomainEnvironmentVariable("AWS_REGION"),
SignatureVersion = EnvironmentExtensions.GetDomainEnvironmentVariable("AWS_SIGNATURE_VERSION", "v4")
};
}
}
}