Trait mountpoint_s3_client::ObjectClient
source · pub trait ObjectClient {
type GetObjectRequest: GetObjectRequest<ClientError = Self::ClientError>;
type PutObjectRequest: PutObjectRequest<ClientError = Self::ClientError>;
type ClientError: Error + ProvideErrorMetadata + Send + Sync + 'static;
// Required methods
fn part_size(&self) -> Option<usize>;
async fn delete_object(
&self,
bucket: &str,
key: &str,
) -> ObjectClientResult<DeleteObjectResult, DeleteObjectError, Self::ClientError>;
async fn get_object(
&self,
bucket: &str,
key: &str,
range: Option<Range<u64>>,
if_match: Option<ETag>,
) -> ObjectClientResult<Self::GetObjectRequest, GetObjectError, Self::ClientError>;
async fn list_objects(
&self,
bucket: &str,
continuation_token: Option<&str>,
delimiter: &str,
max_keys: usize,
prefix: &str,
) -> ObjectClientResult<ListObjectsResult, ListObjectsError, Self::ClientError>;
async fn head_object(
&self,
bucket: &str,
key: &str,
) -> ObjectClientResult<HeadObjectResult, HeadObjectError, Self::ClientError>;
async fn put_object(
&self,
bucket: &str,
key: &str,
params: &PutObjectParams,
) -> ObjectClientResult<Self::PutObjectRequest, PutObjectError, Self::ClientError>;
async fn get_object_attributes(
&self,
bucket: &str,
key: &str,
max_parts: Option<usize>,
part_number_marker: Option<usize>,
object_attributes: &[ObjectAttribute],
) -> ObjectClientResult<GetObjectAttributesResult, GetObjectAttributesError, Self::ClientError>;
}Expand description
A generic interface to S3-like object storage services.
This trait defines the common methods that all object services implement.
This is an async trait defined with the async-trait
crate, and so implementations of this trait must use the #[async_trait::async_trait]
attribute.
Required Associated Types§
type GetObjectRequest: GetObjectRequest<ClientError = Self::ClientError>
type PutObjectRequest: PutObjectRequest<ClientError = Self::ClientError>
type ClientError: Error + ProvideErrorMetadata + Send + Sync + 'static
Required Methods§
sourcefn part_size(&self) -> Option<usize>
fn part_size(&self) -> Option<usize>
Query the part size this client uses for PUT and GET operations to the object store. This
can be None if the client does not do multi-part operations.
sourceasync fn delete_object(
&self,
bucket: &str,
key: &str,
) -> ObjectClientResult<DeleteObjectResult, DeleteObjectError, Self::ClientError>
async fn delete_object( &self, bucket: &str, key: &str, ) -> ObjectClientResult<DeleteObjectResult, DeleteObjectError, Self::ClientError>
Delete a single object from the object store.
DeleteObject will succeed even if the object within the bucket does not exist.
sourceasync fn get_object(
&self,
bucket: &str,
key: &str,
range: Option<Range<u64>>,
if_match: Option<ETag>,
) -> ObjectClientResult<Self::GetObjectRequest, GetObjectError, Self::ClientError>
async fn get_object( &self, bucket: &str, key: &str, range: Option<Range<u64>>, if_match: Option<ETag>, ) -> ObjectClientResult<Self::GetObjectRequest, GetObjectError, Self::ClientError>
Get an object from the object store. Returns a stream of body parts of the object. Parts are guaranteed to be returned by the stream in order and contiguously.
sourceasync fn list_objects(
&self,
bucket: &str,
continuation_token: Option<&str>,
delimiter: &str,
max_keys: usize,
prefix: &str,
) -> ObjectClientResult<ListObjectsResult, ListObjectsError, Self::ClientError>
async fn list_objects( &self, bucket: &str, continuation_token: Option<&str>, delimiter: &str, max_keys: usize, prefix: &str, ) -> ObjectClientResult<ListObjectsResult, ListObjectsError, Self::ClientError>
List the objects in a bucket under a given prefix
sourceasync fn head_object(
&self,
bucket: &str,
key: &str,
) -> ObjectClientResult<HeadObjectResult, HeadObjectError, Self::ClientError>
async fn head_object( &self, bucket: &str, key: &str, ) -> ObjectClientResult<HeadObjectResult, HeadObjectError, Self::ClientError>
Retrieve object metadata without retrieving the object contents
sourceasync fn put_object(
&self,
bucket: &str,
key: &str,
params: &PutObjectParams,
) -> ObjectClientResult<Self::PutObjectRequest, PutObjectError, Self::ClientError>
async fn put_object( &self, bucket: &str, key: &str, params: &PutObjectParams, ) -> ObjectClientResult<Self::PutObjectRequest, PutObjectError, Self::ClientError>
Put an object into the object store. Returns a PutObjectRequest for callers to provide the content of the object.
sourceasync fn get_object_attributes(
&self,
bucket: &str,
key: &str,
max_parts: Option<usize>,
part_number_marker: Option<usize>,
object_attributes: &[ObjectAttribute],
) -> ObjectClientResult<GetObjectAttributesResult, GetObjectAttributesError, Self::ClientError>
async fn get_object_attributes( &self, bucket: &str, key: &str, max_parts: Option<usize>, part_number_marker: Option<usize>, object_attributes: &[ObjectAttribute], ) -> ObjectClientResult<GetObjectAttributesResult, GetObjectAttributesError, Self::ClientError>
Retrieves all the metadata from an object without returning the object contents.