Struct s3_algo::S3Algo

source ·
pub struct S3Algo<S = S3Client> { /* private fields */ }

Implementations§

source§

impl<S: S3 + Clone + Send + Sync + Unpin + 'static> S3Algo<S>

source

pub fn list_prefix(
    &self,
    bucket: String,
    prefix: String
) -> ListObjects<S, impl Stream<Item = ListObjectsV2Result> + Sized + Send>

List all objects with a certain prefix

source

pub fn list_objects<F>(
    &self,
    bucket: String,
    request_factory: F
) -> ListObjects<S, impl Stream<Item = ListObjectsV2Result> + Sized + Send>where
    F: Fn() -> ListObjectsV2Request + Send + Sync + Clone + Unpin + 'static,

List all objects given a request factory. Paging is taken care of, so you need not fill in continuation_token in the ListObjectsV2Request.

bucket is only needed for eventual further operations on ListObjects.

source§

impl<S: S3 + Clone + Send + Sync + Unpin + 'static> S3Algo<S>

source

pub async fn upload_files<P, F, I, R>(
    &self,
    bucket: String,
    files: I,
    progress: P,
    default_request: R
) -> Result<(), Error>where
    P: Fn(RequestReport) -> F + Clone + Send + Sync + 'static,
    F: Future<Output = ()> + Send + 'static,
    I: Iterator<Item = ObjectSource> + Send + 'static,
    R: Fn() -> PutObjectRequest + Clone + Unpin + Sync + Send + 'static,

Upload multiple files to S3.

upload_files provides counting of uploaded files and bytes through the progress closure:

For common use cases it is adviced to use files_recursive for the files parameter.

progress will be called after the upload of each file, with some data about that upload. The first usize parameter is the number of this file in the upload, while RequestReport holds more data such as size in bytes, and the duration of the upload. It is thus possible to report progress both in amount of files, or amount of bytes, depending on what granularity is desired. progress returns a generic F: Future to support async operations like, for example, logging the results to a file; this future will be run as part of the upload algorithm.

default_request constructs the default request struct - only the fields bucket, key, body and content_length are overwritten by the upload algorithm.

source§

impl<S> S3Algo<S>

source

pub fn new(s3: S) -> Self

source

pub fn with_config(s3: S, config: Config) -> Self

Trait Implementations§

source§

impl<S: Clone> Clone for S3Algo<S>

source§

fn clone(&self) -> S3Algo<S>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<S> RefUnwindSafe for S3Algo<S>where
    S: RefUnwindSafe,

§

impl<S> Send for S3Algo<S>where
    S: Send,

§

impl<S> Sync for S3Algo<S>where
    S: Sync,

§

impl<S> Unpin for S3Algo<S>where
    S: Unpin,

§

impl<S> UnwindSafe for S3Algo<S>where
    S: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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 Twhere
    U: From<T>,

const: unstable · 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<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere
    T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · 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