pub struct S3Algo<S = S3Client> { /* private fields */ }Implementations§
source§impl<S: S3 + Clone + Send + Sync + Unpin + 'static> S3Algo<S>
impl<S: S3 + Clone + Send + Sync + Unpin + 'static> S3Algo<S>
sourcepub fn list_prefix(
&self,
bucket: String,
prefix: String
) -> ListObjects<S, impl Stream<Item = ListObjectsV2Result> + Sized + Send>
pub fn list_prefix(
&self,
bucket: String,
prefix: String
) -> ListObjects<S, impl Stream<Item = ListObjectsV2Result> + Sized + Send>
List all objects with a certain prefix
sourcepub 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,
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>
impl<S: S3 + Clone + Send + Sync + Unpin + 'static> S3Algo<S>
sourcepub 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,
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.