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
#[derive(Debug, Clone)]
pub struct Client {
	access_key_id: String,
	access_key_secret: String,
	endpoint: String,
	bucket: String,
}

impl Client {
	pub fn from_env() -> anyhow::Result<Self> {
		let access_key_id = std::env::var("ALI_OSS_ACCESS_KEY_ID")?;
		let access_key_secret = std::env::var("ALI_OSS_ACCESS_KEY_SECRET")?;
		let endpoint = std::env::var("ALI_OSS_ENDPOINT")?;
		let bucket = std::env::var("ALI_OSS_BUCKET")?;

		Ok(Self::new(&access_key_id, &access_key_secret, &endpoint, &bucket))
	}
	fn new(access_key_id: &str, access_key_secret: &str, endpoint: &str, bucket: &str) -> Self {
		Self {
			access_key_id: access_key_id.to_string(),
			access_key_secret: access_key_secret.to_string(),
			endpoint: endpoint.to_string(),
			bucket: bucket.to_string(),
		}
	}
}