Skip to main content

ServerObjectStore

Enum ServerObjectStore 

Source
pub enum ServerObjectStore {
    Local(LocalObjectStore),
    S3(S3ObjectStore),
    Blackhole,
}
Expand description

Unified object-store backend that delegates to local, S3, or blackhole storage.

Variants§

§

Local(LocalObjectStore)

Local filesystem object store.

§

S3(S3ObjectStore)

S3-compatible object store.

§

Blackhole

Blackhole object store that discards all writes.

Implementations§

Source§

impl ServerObjectStore

Source

pub fn local( root: impl Into<PathBuf>, ) -> Result<ServerObjectStore, ServerObjectStoreError>

Creates a local filesystem object store rooted at the given path.

§Errors

Returns ServerObjectStoreError::Local if the local store cannot be created.

Source

pub fn s3( config: S3ObjectStoreConfig, ) -> Result<ServerObjectStore, ServerObjectStoreError>

Creates an S3-compatible object store from the provided configuration.

§Errors

Returns ServerObjectStoreError::S3 if the S3 store cannot be created.

Source

pub const fn blackhole() -> ServerObjectStore

Creates a blackhole object store that discards all writes.

Source

pub fn put_overwrite( &self, key: &ObjectKey, body: ObjectBody<'_>, integrity: &ObjectIntegrity, ) -> Result<(), ServerObjectStoreError>

Stores an object, overwriting any existing object at the given key.

§Errors

Returns ServerObjectStoreError on storage backend failures.

Source

pub fn visit_prefix<F, E>( &self, prefix: &ObjectPrefix, visitor: F, ) -> Result<(), E>

Visits all objects under the given prefix, invoking the visitor for each.

§Errors

Returns any error produced by the visitor or the underlying storage backend.

Source

pub fn list_flat_namespace_page( &self, prefix: &ObjectPrefix, start_after: Option<&ObjectKey>, limit: usize, ) -> Result<Vec<ObjectMetadata>, ServerObjectStoreError>

Lists objects under the given prefix with pagination.

§Errors

Returns ServerObjectStoreError on storage backend failures.

Source

pub fn local_path_for_key(&self, key: &ObjectKey) -> Option<PathBuf>

Returns the local filesystem path for an object key, if backed by local storage.

Source

pub fn copy_if_absent( &self, source: &ObjectKey, destination: &ObjectKey, ) -> Result<PutOutcome, ServerObjectStoreError>

Copies an object from source to destination if no object exists at the destination.

§Errors

Returns ServerObjectStoreError::NotFound for blackhole stores or storage backend errors.

Source

pub fn put_content_addressed_file( &self, key: &ObjectKey, path: &Path, integrity: &ObjectIntegrity, ) -> Result<PutOutcome, ServerObjectStoreError>

Stores a content-addressed file from the local filesystem.

§Errors

Returns ServerObjectStoreError on storage backend failures.

Source

pub fn local_root(&self) -> Option<&Path>

Returns the local filesystem root, if backed by local storage.

Source

pub const fn backend_name(&self) -> &'static str

Returns the backend name for this object store.

Source

pub fn read_full_object( &self, object_key: &ObjectKey, length: u64, ) -> Result<Vec<u8>, ServerObjectStoreError>

Reads the full contents of an object from the store.

§Errors

Returns ServerObjectStoreError on storage backend failures, length mismatches, or arithmetic overflows.

Trait Implementations§

Source§

impl Clone for ServerObjectStore

Source§

fn clone(&self) -> ServerObjectStore

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ServerObjectStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl ObjectStore for ServerObjectStore

Source§

type Error = ServerObjectStoreError

Adapter-specific error type.
Source§

fn put_if_absent( &self, key: &ObjectKey, body: ObjectBody<'_>, integrity: &ObjectIntegrity, ) -> Result<PutOutcome, <ServerObjectStore as ObjectStore>::Error>

Stores an object if no identical object exists yet. Read more
Source§

fn read_range( &self, key: &ObjectKey, range: ByteRange, ) -> Result<Vec<u8>, <ServerObjectStore as ObjectStore>::Error>

Reads an inclusive byte range from an object. Read more
Source§

fn contains( &self, key: &ObjectKey, ) -> Result<bool, <ServerObjectStore as ObjectStore>::Error>

Returns whether an object exists. Read more
Source§

fn metadata( &self, key: &ObjectKey, ) -> Result<Option<ObjectMetadata>, <ServerObjectStore as ObjectStore>::Error>

Returns stored metadata for an object. Read more
Source§

fn list_prefix( &self, prefix: &ObjectPrefix, ) -> Result<Vec<ObjectMetadata>, <ServerObjectStore as ObjectStore>::Error>

Lists objects under a validated key prefix. Read more
Source§

fn delete_if_present( &self, key: &ObjectKey, ) -> Result<DeleteOutcome, <ServerObjectStore as ObjectStore>::Error>

Deletes an object if it exists. Read more
Source§

fn visit_prefix<Visitor, VisitorError>( &self, prefix: &ObjectPrefix, visitor: Visitor, ) -> Result<(), VisitorError>
where Self::Error: Into<VisitorError>, Visitor: FnMut(ObjectMetadata) -> Result<(), VisitorError>,

Visits objects under a validated key prefix without requiring callers to own the full inventory at once. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ServiceExt for T

Source§

fn follow_redirects(self) -> FollowRedirect<Self>
where Self: Sized,

Follow redirect resposes using the Standard policy. Read more
Source§

fn override_request_header<M>( self, header_name: HeaderName, make: M, ) -> SetRequestHeader<Self, M>
where Self: Sized,

Insert a header into the request. Read more
Source§

fn append_request_header<M>( self, header_name: HeaderName, make: M, ) -> SetRequestHeader<Self, M>
where Self: Sized,

Append a header into the request. Read more
Source§

fn insert_request_header_if_not_present<M>( self, header_name: HeaderName, make: M, ) -> SetRequestHeader<Self, M>
where Self: Sized,

Insert a header into the request, if the header is not already present. Read more
Source§

fn override_response_header<M>( self, header_name: HeaderName, make: M, ) -> SetResponseHeader<Self, M>
where Self: Sized,

Insert a header into the response. Read more
Source§

fn append_response_header<M>( self, header_name: HeaderName, make: M, ) -> SetResponseHeader<Self, M>
where Self: Sized,

Append a header into the response. Read more
Source§

fn insert_response_header_if_not_present<M>( self, header_name: HeaderName, make: M, ) -> SetResponseHeader<Self, M>
where Self: Sized,

Insert a header into the response, if the header is not already present. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more