pub struct S3Client { /* private fields */ }Expand description
S3 client wrapper
Implementations§
Source§impl S3Client
impl S3Client
Sourcepub async fn new(alias: Alias) -> Result<Self>
pub async fn new(alias: Alias) -> Result<Self>
Create a new S3 client from an alias configuration
Sourcepub async fn list_object_versions_page(
&self,
path: &RemotePath,
max_keys: Option<i32>,
) -> Result<ObjectVersionListResult>
pub async fn list_object_versions_page( &self, path: &RemotePath, max_keys: Option<i32>, ) -> Result<ObjectVersionListResult>
List a single page of object versions and return pagination metadata.
Sourcepub async fn get_object_with_progress(
&self,
path: &RemotePath,
on_progress: impl FnMut(u64, Option<u64>) + Send,
) -> Result<Vec<u8>>
pub async fn get_object_with_progress( &self, path: &RemotePath, on_progress: impl FnMut(u64, Option<u64>) + Send, ) -> Result<Vec<u8>>
Download object content and report downloaded bytes after each received chunk.
Sourcepub async fn delete_object_with_options(
&self,
path: &RemotePath,
options: DeleteRequestOptions,
) -> Result<()>
pub async fn delete_object_with_options( &self, path: &RemotePath, options: DeleteRequestOptions, ) -> Result<()>
Delete an object with RustFS-specific request options.
Sourcepub async fn delete_objects_with_options(
&self,
bucket: &str,
keys: Vec<String>,
options: DeleteRequestOptions,
) -> Result<Vec<String>>
pub async fn delete_objects_with_options( &self, bucket: &str, keys: Vec<String>, options: DeleteRequestOptions, ) -> Result<Vec<String>>
Delete multiple objects with RustFS-specific request options.
Sourcepub async fn put_object_from_path(
&self,
path: &RemotePath,
file_path: &Path,
content_type: Option<&str>,
on_progress: impl Fn(u64) + Send,
) -> Result<ObjectInfo>
pub async fn put_object_from_path( &self, path: &RemotePath, file_path: &Path, content_type: Option<&str>, on_progress: impl Fn(u64) + Send, ) -> Result<ObjectInfo>
Upload a local file path to S3.
Uses multipart upload for large files to avoid loading the entire file into memory.
Calls on_progress after each uploaded part with total bytes sent so far.
Trait Implementations§
Source§impl ObjectStore for S3Client
impl ObjectStore for S3Client
Source§fn list_buckets<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ObjectInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_buckets<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ObjectInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List buckets
Source§fn list_objects<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: ListOptions,
) -> Pin<Box<dyn Future<Output = Result<ListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_objects<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: ListOptions,
) -> Pin<Box<dyn Future<Output = Result<ListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List objects in a bucket or prefix
Source§fn head_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn head_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get object metadata
Source§fn bucket_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn bucket_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check if a bucket exists
Source§fn create_bucket<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_bucket<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a bucket
Source§fn delete_bucket<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bucket<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a bucket
Source§fn capabilities<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Capabilities>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn capabilities<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Capabilities>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get backend capabilities
Source§fn get_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get object content as bytes
Source§fn put_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
content_type: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
content_type: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Upload object from bytes
Source§fn delete_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete an object
Source§fn delete_objects<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
keys: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_objects<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
keys: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete multiple objects (batch delete)
Source§fn copy_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn copy_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Copy object within S3 (server-side copy)
Source§fn presign_get<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
expires_secs: u64,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn presign_get<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
expires_secs: u64,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate a presigned URL for an object
Source§fn presign_put<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
expires_secs: u64,
content_type: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn presign_put<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
expires_secs: u64,
content_type: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Generate a presigned URL for uploading an object
Source§fn get_versioning<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_versioning<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket versioning status
Source§fn set_versioning<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
enabled: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_versioning<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
enabled: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set bucket versioning status
Source§fn list_object_versions<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
max_keys: Option<i32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ObjectVersion>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_object_versions<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
max_keys: Option<i32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<ObjectVersion>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List object versions
Get object tags
Get bucket tags
Set object tags
Set bucket tags
Delete object tags
Delete bucket tags
Source§fn get_bucket_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket policy as raw JSON string. Returns
None when no policy exists.Source§fn set_bucket_policy<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
policy: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn set_bucket_policy<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
policy: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Replace bucket policy using raw JSON string.
Source§fn delete_bucket_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bucket_policy<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove bucket policy (set anonymous access to private).
Source§fn get_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<CorsRule>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<CorsRule>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket CORS rules. Returns empty vec if no CORS config exists.
Source§fn set_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
rules: Vec<CorsRule>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
rules: Vec<CorsRule>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set bucket CORS configuration (replaces all rules).
Source§fn delete_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bucket_cors<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete bucket CORS configuration.
Source§fn get_bucket_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<BucketNotification>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<BucketNotification>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket notification configuration as flat rules.
Source§fn set_bucket_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
notifications: Vec<BucketNotification>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_bucket_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
notifications: Vec<BucketNotification>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Replace bucket notification configuration with flat rules.
Source§fn get_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LifecycleRule>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<LifecycleRule>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket lifecycle rules. Returns empty vec if no lifecycle config exists.
Source§fn set_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
rules: Vec<LifecycleRule>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
rules: Vec<LifecycleRule>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set bucket lifecycle configuration (replaces all rules).
Source§fn delete_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bucket_lifecycle<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete bucket lifecycle configuration.
Source§fn restore_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
days: i32,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
days: i32,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore a transitioned (archived) object.
Source§fn get_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ReplicationConfiguration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<ReplicationConfiguration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket replication configuration. Returns None if not configured.
Source§fn set_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
config: ReplicationConfiguration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
config: ReplicationConfiguration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set bucket replication configuration.
Source§fn delete_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_bucket_replication<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete bucket replication configuration.
Source§fn select_object_content<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 SelectOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn select_object_content<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 SelectOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Run S3 Select on an object and stream result payloads to
writer.Auto Trait Implementations§
impl Freeze for S3Client
impl !RefUnwindSafe for S3Client
impl Send for S3Client
impl Sync for S3Client
impl Unpin for S3Client
impl UnsafeUnpin for S3Client
impl !UnwindSafe for S3Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.