Skip to main content

S3Store

Trait S3Store 

Source
pub trait S3Store: Send + Sync {
Show 14 methods // Required methods fn load(&self) -> StoreResult<S3State>; fn put_bucket_meta( &self, bucket: &str, meta: &BucketMeta, ) -> StoreResult<()>; fn put_bucket_subresource( &self, bucket: &str, kind: BucketSubresource, payload: &str, ) -> StoreResult<()>; fn delete_bucket_subresource( &self, bucket: &str, kind: BucketSubresource, ) -> StoreResult<()>; fn delete_bucket(&self, bucket: &str) -> StoreResult<()>; fn put_object( &self, bucket: &str, key: &str, version: Option<&str>, body: BodySource, meta: &ObjectMeta, ) -> StoreResult<BodyRef>; fn put_object_meta( &self, bucket: &str, key: &str, version: Option<&str>, meta: &ObjectMeta, ) -> StoreResult<()>; fn delete_object( &self, bucket: &str, key: &str, version: Option<&str>, ) -> StoreResult<()>; fn open_object_body(&self, body: &BodyRef) -> StoreResult<Bytes>; fn mpu_create( &self, bucket: &str, upload_id: &str, init: &MpuInit, ) -> StoreResult<()>; fn mpu_put_part( &self, bucket: &str, upload_id: &str, part_number: u32, body: BodySource, etag: &str, ) -> StoreResult<BodyRef>; fn mpu_abort(&self, bucket: &str, upload_id: &str) -> StoreResult<()>; fn mpu_complete( &self, bucket: &str, upload_id: &str, final_key: &str, version: Option<&str>, meta: &ObjectMeta, ) -> StoreResult<BodyRef>; // Provided method fn spool_dir(&self) -> Option<PathBuf> { ... }
}

Required Methods§

Source

fn load(&self) -> StoreResult<S3State>

Source

fn put_bucket_meta(&self, bucket: &str, meta: &BucketMeta) -> StoreResult<()>

Source

fn put_bucket_subresource( &self, bucket: &str, kind: BucketSubresource, payload: &str, ) -> StoreResult<()>

Source

fn delete_bucket_subresource( &self, bucket: &str, kind: BucketSubresource, ) -> StoreResult<()>

Source

fn delete_bucket(&self, bucket: &str) -> StoreResult<()>

Source

fn put_object( &self, bucket: &str, key: &str, version: Option<&str>, body: BodySource, meta: &ObjectMeta, ) -> StoreResult<BodyRef>

Source

fn put_object_meta( &self, bucket: &str, key: &str, version: Option<&str>, meta: &ObjectMeta, ) -> StoreResult<()>

Source

fn delete_object( &self, bucket: &str, key: &str, version: Option<&str>, ) -> StoreResult<()>

Source

fn open_object_body(&self, body: &BodyRef) -> StoreResult<Bytes>

Source

fn mpu_create( &self, bucket: &str, upload_id: &str, init: &MpuInit, ) -> StoreResult<()>

Source

fn mpu_put_part( &self, bucket: &str, upload_id: &str, part_number: u32, body: BodySource, etag: &str, ) -> StoreResult<BodyRef>

Persist a multipart-upload part body. Returns the BodyRef the service should keep in its in-memory part map: BodyRef::Disk for disk-backed stores (so subsequent reads stream from the .bin file instead of holding the part in RAM), or BodyRef::Memory for memory-mode stores.

Source

fn mpu_abort(&self, bucket: &str, upload_id: &str) -> StoreResult<()>

Source

fn mpu_complete( &self, bucket: &str, upload_id: &str, final_key: &str, version: Option<&str>, meta: &ObjectMeta, ) -> StoreResult<BodyRef>

Provided Methods§

Source

fn spool_dir(&self) -> Option<PathBuf>

Where the streaming dispatch path should spool large request bodies to disk before handing them to Self::put_object / Self::mpu_put_part. Returning Some keeps the spool file on the same filesystem as the final destination so rename(2) is a metadata-only move; returning None means “use the system temp dir, the store will read the file back into RAM and unlink it”.

Implementors§