pub trait ObjectStore: Send + Sync {
Show 71 methods
// Required methods
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_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 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 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 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 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 capabilities<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Capabilities>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: '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;
fn put_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
content_type: Option<&'life2 str>,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: '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;
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 copy_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: '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;
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 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 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 get_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketEncryption>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn set_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
encryption: BucketEncryption,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_bucket_encryption<'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 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 get_object_tags<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_bucket_tags<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn set_object_tags<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
tags: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn set_bucket_tags<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
tags: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_object_tags<'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_bucket_tags<'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 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 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 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 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 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 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 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 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 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 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 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 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 check_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 start_bucket_replication_resync<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: ReplicationResyncStartOptions,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStartResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn bucket_replication_resync_status<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
target_arn: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStatus>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: '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;
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 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 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;
// Provided methods
fn list_multipart_uploads<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: MultipartUploadListOptions,
) -> Pin<Box<dyn Future<Output = Result<MultipartUploadListResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn abort_multipart_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 AbortMultipartUploadRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn head_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn head_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn head_object_transfer_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectTransferMetadata>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn create_bucket_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: &'life2 CreateBucketOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn get_bucket_location<'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_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn get_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn write_object_to_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait { ... }
fn write_object_to_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait { ... }
fn put_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
options: &'life2 ObjectWriteOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn delete_object_with_options<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeletedObject>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn delete_object_versions<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_objects: Vec<ObjectVersionIdentifier>,
_options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeleteObjectsResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn copy_object_with_options<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 CopyObjectOptions,
encryption: Option<&'life4 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait { ... }
fn copy_object_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 TransferCopyOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait { ... }
fn multipart_copy<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
_src: &'life1 RemotePath,
_dst: &'life2 RemotePath,
_options: &'life3 MultipartCopyOptions,
_cancellation: &'life4 MultipartCopyCancellation,
_encryption: Option<&'life5 ObjectEncryptionRequest>,
_on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait { ... }
fn multipart_copy_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
multipart: &'life3 MultipartCopyOptions,
transfer: &'life4 TransferCopyOptions,
cancellation: &'life5 MultipartCopyCancellation,
on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait { ... }
fn get_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketObjectLockConfiguration>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn put_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_configuration: BucketObjectLockConfiguration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn get_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<Option<ObjectRetention>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn put_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_retention: Option<ObjectRetention>,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn get_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<LegalHoldStatus>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn put_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_status: LegalHoldStatus,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn list_object_versions_page_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ListObjectVersionsOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectVersionListResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
fn check_bucket_replication_detailed<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ReplicationCheckResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
}Expand description
Trait for S3-compatible storage operations
This trait is implemented by the S3 adapter and can be mocked for testing.
Required Methods§
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn put_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
content_type: Option<&'life2 str>,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn put_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
content_type: Option<&'life2 str>,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Upload object from bytes
Sourcefn 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
Sourcefn 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)
Sourcefn copy_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn copy_object<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
encryption: Option<&'life3 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Copy object within S3 (server-side copy)
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn get_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketEncryption>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketEncryption>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get bucket default encryption. Returns None when encryption is not configured.
Sourcefn set_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
encryption: BucketEncryption,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_bucket_encryption<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
encryption: BucketEncryption,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Set bucket default encryption.
Sourcefn delete_bucket_encryption<'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_encryption<'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 default encryption.
Sourcefn 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
Sourcefn 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.
Sourcefn 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.
Sourcefn 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).
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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).
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn check_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 check_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,
Actively validate configured replication targets using the legacy success/failure contract.
Sourcefn start_bucket_replication_resync<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: ReplicationResyncStartOptions,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStartResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start_bucket_replication_resync<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: ReplicationResyncStartOptions,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStartResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Start a server-side bucket replication resync.
Sourcefn bucket_replication_resync_status<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
target_arn: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn bucket_replication_resync_status<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
target_arn: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<ReplicationResyncStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Read persisted server-side bucket replication resync status.
Sourcefn 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.
Sourcefn 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).
Sourcefn 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.
Sourcefn 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.
Provided Methods§
Sourcefn list_multipart_uploads<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: MultipartUploadListOptions,
) -> Pin<Box<dyn Future<Output = Result<MultipartUploadListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_multipart_uploads<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: MultipartUploadListOptions,
) -> Pin<Box<dyn Future<Output = Result<MultipartUploadListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List one page of incomplete multipart uploads.
Sourcefn abort_multipart_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 AbortMultipartUploadRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn abort_multipart_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 AbortMultipartUploadRequest,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Abort one incomplete multipart upload.
Sourcefn head_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn head_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get metadata for the current object or an exact historical version.
Sourcefn head_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn head_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get metadata with checksum-mode and SSE-C support when implemented by the backend.
The default preserves legacy version selection and rejects advanced options explicitly.
Sourcefn head_object_transfer_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectTransferMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn head_object_transfer_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectTransferMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Read complete transfer metadata without changing ObjectInfo’s stable output contract.
Sourcefn create_bucket_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: &'life2 CreateBucketOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_bucket_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
options: &'life2 CreateBucketOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Create a bucket with explicit region, versioning, and Object Lock intent.
The default preserves existing implementations for the option-free request and rejects advanced behavior instead of silently ignoring it.
Sourcefn get_bucket_location<'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_location<'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,
Return the effective location reported by the service.
None is the S3 representation for the default us-east-1 location.
Sourcefn get_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get current object content or an exact historical version as bytes.
Sourcefn get_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_object_with_transfer_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Read an object with checksum-mode and SSE-C support when implemented by the backend.
The default preserves legacy version selection and rejects advanced options explicitly.
Sourcefn write_object_to_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn write_object_to_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 ObjectReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Stream current object content or an exact historical version to a writer.
Sourcefn write_object_to_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn write_object_to_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: &'life2 TransferReadOptions,
writer: &'life3 mut (dyn AsyncWrite + Send + Unpin),
max_bytes: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Stream an object with checksum-mode and SSE-C support when implemented by the backend.
The default preserves legacy version selection and rejects advanced options explicitly.
Sourcefn put_object_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
options: &'life2 ObjectWriteOptions,
) -> 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_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
data: Vec<u8>,
options: &'life2 ObjectWriteOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Upload an object with complete transfer-fidelity options.
The default delegates Content-Type and managed encryption to the legacy API and rejects every option that cannot be represented there.
Sourcefn delete_object_with_options<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeletedObject>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_object_with_options<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 RemotePath,
options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeletedObject>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete the current object state or one exact version with explicit request options.
Sourcefn delete_object_versions<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_objects: Vec<ObjectVersionIdentifier>,
_options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeleteObjectsResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_object_versions<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_objects: Vec<ObjectVersionIdentifier>,
_options: DeleteRequestOptions,
) -> Pin<Box<dyn Future<Output = Result<DeleteObjectsResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete exact object versions and delete markers in one request.
Sourcefn copy_object_with_options<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 CopyObjectOptions,
encryption: Option<&'life4 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn copy_object_with_options<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 CopyObjectOptions,
encryption: Option<&'life4 ObjectEncryptionRequest>,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Copy the current object or one exact historical source version.
Sourcefn copy_object_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 TransferCopyOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn copy_object_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
options: &'life3 TransferCopyOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Copy an object with explicit metadata, tags, checksum, SSE-C, and lock intent.
The default preserves legacy source-version and managed-encryption behavior while rejecting every advanced option that the original API cannot represent.
Sourcefn multipart_copy<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
_src: &'life1 RemotePath,
_dst: &'life2 RemotePath,
_options: &'life3 MultipartCopyOptions,
_cancellation: &'life4 MultipartCopyCancellation,
_encryption: Option<&'life5 ObjectEncryptionRequest>,
_on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
fn multipart_copy<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
_src: &'life1 RemotePath,
_dst: &'life2 RemotePath,
_options: &'life3 MultipartCopyOptions,
_cancellation: &'life4 MultipartCopyCancellation,
_encryption: Option<&'life5 ObjectEncryptionRequest>,
_on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
Copy an object with S3’s multipart server-side copy lifecycle.
Backends that do not implement multipart copy fail explicitly. The callback receives cumulative logical bytes after each successful part.
Sourcefn multipart_copy_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
multipart: &'life3 MultipartCopyOptions,
transfer: &'life4 TransferCopyOptions,
cancellation: &'life5 MultipartCopyCancellation,
on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
fn multipart_copy_with_transfer_options<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
src: &'life1 RemotePath,
dst: &'life2 RemotePath,
multipart: &'life3 MultipartCopyOptions,
transfer: &'life4 TransferCopyOptions,
cancellation: &'life5 MultipartCopyCancellation,
on_progress: &'life6 MultipartCopyProgress<'life7>,
) -> Pin<Box<dyn Future<Output = Result<MultipartCopyResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
Copy an object through the multipart lifecycle with transfer-fidelity options.
The default delegates only when all requested fidelity can be represented by the legacy multipart API. Implementations must override this method before accepting advanced fields.
Sourcefn get_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketObjectLockConfiguration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<BucketObjectLockConfiguration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a bucket’s Object Lock configuration.
None means the bucket exists but has no Object Lock configuration.
Sourcefn put_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_configuration: BucketObjectLockConfiguration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_bucket_object_lock_configuration<'life0, 'life1, 'async_trait>(
&'life0 self,
_bucket: &'life1 str,
_configuration: BucketObjectLockConfiguration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update an Object Lock enabled bucket’s configuration.
Sourcefn get_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<Option<ObjectRetention>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<Option<ObjectRetention>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get retention applied to the selected object version.
Sourcefn put_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_retention: Option<ObjectRetention>,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_object_retention<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_retention: Option<ObjectRetention>,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Set or clear retention on the selected object version.
Sourcefn get_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<LegalHoldStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<LegalHoldStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get legal-hold status for the selected object version.
Sourcefn put_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_status: LegalHoldStatus,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_object_legal_hold<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_status: LegalHoldStatus,
_options: &'life2 ObjectLockOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Set legal-hold status for the selected object version.
Sourcefn list_object_versions_page_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ListObjectVersionsOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectVersionListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_object_versions_page_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_path: &'life1 RemotePath,
_options: &'life2 ListObjectVersionsOptions,
) -> Pin<Box<dyn Future<Output = Result<ObjectVersionListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
List one page of object versions and delete markers with both S3 pagination markers.
Sourcefn check_bucket_replication_detailed<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ReplicationCheckResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn check_bucket_replication_detailed<'life0, 'life1, 'async_trait>(
&'life0 self,
bucket: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ReplicationCheckResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Actively validate configured replication targets and retain structured per-target and cleanup outcomes when the server provides them.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".