Skip to content

Commit 2eb7b44

Browse files
committed
add EnvironmentVariableCredentialsProvider
1 parent 991ed6a commit 2eb7b44

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System;
2+
3+
namespace AlibabaCloud.OSS.V2.Credentials {
4+
/// <summary>
5+
/// Obtaining credentials from environment variables.
6+
/// OSS_ACCESS_KEY_ID
7+
/// OSS_ACCESS_KEY_SECRET
8+
/// OSS_SESSION_TOKEN(Optional)
9+
/// </summary>
10+
public class EnvironmentVariableCredentialsProvider : ICredentialsProvider {
11+
private readonly Credentials _credentials;
12+
/// <summary>
13+
/// Creates an instance of <see cref="EnvironmentVariableCredentialsProvider"/>
14+
/// </summary>
15+
public EnvironmentVariableCredentialsProvider() {
16+
var ak = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
17+
var sk = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
18+
if (string.IsNullOrEmpty(ak) || string.IsNullOrEmpty(sk)) {
19+
throw new ArgumentException("Credentials is null or empty");
20+
}
21+
var token = Environment.GetEnvironmentVariable("OSS_SESSION_TOKEN");
22+
23+
_credentials = new Credentials(ak, sk, token ?? "");
24+
}
25+
26+
/// <inheritdoc/>
27+
public Credentials GetCredentials() {
28+
return _credentials;
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)