Struct Client

Source
pub struct Client { /* private fields */ }

Implementations§

Source§

impl Client

Source

pub fn new<S: ToString>( access_key_id: S, secret_access_key: S, endpoint: &str, ) -> Result<Client, ObsError>

endpoint 格式: https[http]://obs.cn-north-4.myhuaweicloud.com

Source

pub fn security(&self) -> Option<SecurityHolder>

Source

pub fn bucket<'a>(&'a self, name: &'a str) -> Bucket<'_>

Source

pub fn builder() -> ClientBuilder

Examples found in repository?
examples/obs.rs (line 17)
11async fn main()->Result<(), ObsError> {
12    dotenvy::dotenv().unwrap();
13
14    let ak = env::var("OBS_AK").unwrap();
15    let sk = env::var("OBS_SK").unwrap();
16    // println!("ak:{},sk:{}",&ak,&sk);
17    let obs = client::Client::builder()
18        .endpoint("https://obs.ap-southeast-1.myhuaweicloud.com")
19        .security_provider(&ak, &sk) //ifree-test
20        .build()?;
21    let key= "test.jpeg";
22    let bytes = obs.get_object("bucket", key).await?;
23
24    let mut file = std::fs::File::create("test.jpeg").unwrap();
25    file.write_all(&bytes).unwrap();
26    
27    Ok(())
28}
Source

pub fn config(&self) -> &Config

Source

pub async fn do_action<T, S1, S2>( &self, method: Method, bucket_name: S1, uri: S2, with_headers: Option<HeaderMap>, params: Option<HashMap<String, String>>, body: Option<T>, ) -> Result<Response, ObsError>
where T: Into<Body> + Send, S1: AsRef<str> + Send, S2: AsRef<str> + Send,

Source

pub async fn do_action_without_bucket_name<T, S1>( &self, method: Method, uri: S1, with_headers: Option<HeaderMap>, params: Option<HashMap<String, String>>, body: Option<T>, ) -> Result<Response, ObsError>
where T: Into<Body> + Send, S1: AsRef<str> + Send,

Trait Implementations§

Source§

impl Authorization for Client

Source§

fn signature( &self, method: &str, _params: HashMap<String, String>, headers: HashMap<String, Vec<String>>, canonicalized_url: String, ) -> Result<String, ObsError>

Source§

fn auth( &self, method: &str, bucket: &str, params: HashMap<String, String>, headers: HashMap<String, Vec<String>>, canonicalized_url: String, ) -> Result<HeaderMap, ObsError>

Source§

impl BucketTrait for Client

Source§

fn list_buckets<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ListAllMyBucketsResult, ObsError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

获取桶列表 Read more
Source§

fn create_bucket<'life0, 'async_trait, S1, S2>( &'life0 self, name: S1, location: Option<S2>, ) -> Pin<Box<dyn Future<Output = Result<(), ObsError>> + Send + 'async_trait>>
where S1: AsRef<str> + Send + 'async_trait, S2: AsRef<str> + Send + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

创建桶 Read more
Source§

fn list_objects<'life0, 'life1, 'life2, 'async_trait, S1>( &'life0 self, name: S1, prefix: Option<&'life1 str>, marker: Option<&'life2 str>, max_keys: Option<usize>, ) -> Pin<Box<dyn Future<Output = Result<ListBucketResult, ObsError>> + Send + 'async_trait>>
where S1: AsRef<str> + Send + 'async_trait, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

列举桶内对象 Read more
Source§

fn bucket_location<'life0, 'async_trait, S1>( &'life0 self, name: S1, ) -> Pin<Box<dyn Future<Output = Result<Location, ObsError>> + Send + 'async_trait>>
where S1: AsRef<str> + Send + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

获取桶区域位置
Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ObjectTrait for Client

Source§

fn put_object<'life0, 'life1, 'async_trait, S>( &'life0 self, bucket: S, key: S, object: &'life1 [u8], ) -> Pin<Box<dyn Future<Output = Result<(), ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

PUT上传

Source§

fn copy_object<'life0, 'async_trait, S1, S2, S3>( &'life0 self, bucket: S1, src: S2, dest: S3, ) -> Pin<Box<dyn Future<Output = Result<CopyObjectResult, ObsError>> + Send + 'async_trait>>
where S1: AsRef<str> + Send + 'async_trait, S2: AsRef<str> + Send + 'async_trait, S3: AsRef<str> + Send + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

复制对象

Source§

fn delete_object<'life0, 'async_trait, S>( &'life0 self, bucket: S, key: S, ) -> Pin<Box<dyn Future<Output = Result<(), ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, Self: 'async_trait, 'life0: 'async_trait,

删除对象

Source§

fn delete_objects<'life0, 'async_trait, S, K>( &'life0 self, bucket: S, keys: K, response_mode: ResponseMode, ) -> Pin<Box<dyn Future<Output = Result<(), ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, K: 'async_trait + IntoIterator<Item = S> + Send, Self: 'async_trait, 'life0: 'async_trait,

批量删除对象

Source§

fn get_object<'life0, 'async_trait, S>( &'life0 self, bucket: S, key: S, ) -> Pin<Box<dyn Future<Output = Result<Bytes, ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, Self: 'async_trait, 'life0: 'async_trait,

获取对象内容

Source§

fn get_object_metadata<'life0, 'async_trait, S>( &'life0 self, bucket: S, key: S, ) -> Pin<Box<dyn Future<Output = Result<ObjectMeta, ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, Self: 'async_trait, 'life0: 'async_trait,

获取对象元数据

Source§

fn append_object<'life0, 'life1, 'async_trait, S>( &'life0 self, bucket: S, key: S, appended: &'life1 [u8], position: u64, ) -> Pin<Box<dyn Future<Output = Result<NextPosition, ObsError>> + Send + 'async_trait>>
where S: 'async_trait + AsRef<str> + Send, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

追加写对象

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T