一个非官方的阿里云oss sdk | rust作品分享 -380玩彩网官网入口
rust初学者,边学边写阿里云oss非官方的sdk,欢迎批评指正 :)
//! `cargo run --example api_region_describe -q`
//!
//! 调用describeregions接口查询所有支持地域或者指定地域对应的endpoint信息,
//! 包括外网endpoint、内网endpoint和传输加速endpoint。
use dotenv;
use std::process;
use xt_oss::prelude::*;
#[tokio::main]
async fn main() -> result<(), box<dyn std::error::error>> {
// 从环境加载配置
dotenv::dotenv().ok();
let options = util::options_from_env();
// builder 配置
// let options = oss::options::new()
// .with_access_key_id("-- your access_key_id --")
// .with_access_key_secret("-- your access_key_secret --");
let client = oss::client::new(options);
match client
.describeregions()
// .with_region("oss-us-east-1")
.execute()
.await
// 处理可能的reqwest错误
.unwrap_or_else(|reqwest_error| {
println!("reqweset error: {}", reqwest_error);
process::exit(-1);
}) {
// 处理正常返回的数据
ok(oss_data) => {
oss_data.content()
.region_info.iter()
.for_each(|entry| {
println!("{:>20} | {}", entry.region, entry.internet_endpoint);
});
}
// 处理oss错误信息
err(error_message) => {
// let message = error_message.content();
println!("request id: {}", &error_message.request_id());
println!("oss error: {}", &error_message.content());
}
}
ok(())
}