Skip to main content

ObjectStore

Trait ObjectStore 

Source
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§

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,

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,

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,

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,

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,

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,

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,

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,

Get object content as bytes

Source

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

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,

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,

Delete multiple objects (batch delete)

Source

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)

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,

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,

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,

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,

Set bucket versioning status

Source

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.

Source

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.

Source

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.

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,

List object versions

Source

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,

Get object tags

Source

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,

Get bucket tags

Source

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,

Set object tags

Source

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,

Set bucket tags

Source

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,

Delete object tags

Source

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,

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,

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,

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,

Remove bucket policy (set anonymous access to private).

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,

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,

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,

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,

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,

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,

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,

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,

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,

Delete bucket replication configuration.

Source

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.

Source

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.

Source

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.

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,

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,

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,

Delete bucket CORS 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,

Run S3 Select on an object and stream result payloads to writer.

Provided Methods§

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Get legal-hold status for the selected object version.

Set legal-hold status for the selected object version.

Source

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.

Source

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".

Implementors§