pub trait ObjectStore: Send + Sync {
// Required methods
fn put(&self, key: &ObjectKey, data: &[u8]) -> Result<()>;
fn get(&self, key: &ObjectKey) -> Result<Vec<u8>>;
fn delete(&self, key: &ObjectKey) -> Result<()>;
fn list(&self, prefix: &str) -> Result<Vec<ObjectMetadata>>;
fn head(&self, key: &ObjectKey) -> Result<ObjectMetadata>;
// Provided methods
fn exists(&self, key: &ObjectKey) -> bool { ... }
fn copy(&self, src: &ObjectKey, dst: &ObjectKey) -> Result<()> { ... }
fn rename(&self, src: &ObjectKey, dst: &ObjectKey) -> Result<()> { ... }
}Expand description
Trait for object storage backends.
Implementations must be Send + Sync to allow use from multiple threads.
Required Methods§
Sourcefn put(&self, key: &ObjectKey, data: &[u8]) -> Result<()>
fn put(&self, key: &ObjectKey, data: &[u8]) -> Result<()>
Store data under key, overwriting any existing object.
Sourcefn delete(&self, key: &ObjectKey) -> Result<()>
fn delete(&self, key: &ObjectKey) -> Result<()>
Delete the object at key. Returns Ok(()) if the key does not exist.
Sourcefn list(&self, prefix: &str) -> Result<Vec<ObjectMetadata>>
fn list(&self, prefix: &str) -> Result<Vec<ObjectMetadata>>
List all keys whose URI starts with prefix.
Sourcefn head(&self, key: &ObjectKey) -> Result<ObjectMetadata>
fn head(&self, key: &ObjectKey) -> Result<ObjectMetadata>
Return metadata for a single object without downloading its content.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".