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
/*! 查询bucket列表
*/
use crate::client::Client;
use crate::request::Request;
use crate::request::Response;

#[async_trait::async_trait]
pub trait Service {
    async fn get_bucket_list(&self) -> Response;
}

#[async_trait::async_trait]
impl Service for Client {
    /**
    查询请求者名下的所有存储桶列表或特定地域下的存储桶列表
    见[文档](https://cloud.tencent.com/document/product/436/8291)
    # Examples
    ```
    use rust_qcos::client::Client;
    use rust_qcos::service::Service;
    async {
    let client = Client::new("foo", "bar", "qcloudtest-1256650966", "ap-guangzhou");
    let resp = client.get_bucket_list().await;
    assert!(resp.error_message.contains("403"));
    };
    ```
    */
    async fn get_bucket_list(&self) -> Response {
        let host = self.get_host_for_bucket_query();
        let mut headers = self.gen_common_headers();
        headers.insert("Host".to_string(), host);
        headers = self.get_headers_with_auth("get", "/", None, Some(headers), None);
        let resp = Request::get(
            format!("https://{}/", self.get_host_for_bucket_query()).as_str(),
            None,
            Some(&headers),
        )
        .await;
        self.make_response(resp)
    }
}