pub struct ObjectStoreBlobStore {
instance_name: String,
object_store: Arc<dyn ObjectStore>,
base_path: Path,
}Expand description
Stores BlobMeta in any backend supported by the object_store crate.
Each BlobMeta is stored as a proto::BlobMeta at
{base_path}/blob/b3/{HEXLOWER(digest[0..2])}/{HEXLOWER(digest)}.
If old BlobMeta are present, it might also access
{base_path}/chunk/b3/{HEXLOWER(digest[0..2])}/{HEXLOWER(digest)}.
Fields§
§instance_name: String§object_store: Arc<dyn ObjectStore>§base_path: PathImplementations§
Source§impl ObjectStoreBlobStore
impl ObjectStoreBlobStore
Sourceasync fn gen_single_chunk_blob_meta(
&self,
digest: &B3Digest,
) -> Result<BlobMeta, Error>
async fn gen_single_chunk_blob_meta( &self, digest: &B3Digest, ) -> Result<BlobMeta, Error>
Create BlobMeta for a single chunk.
In an earlier format, when BlobMeta described a single chunk, the version serialized to disk was an empty file. As we cannot immediately return a BlobMeta from that, as we don’t know its size.
This fetches the chunk, assuming an ObjectStoreChunkStore at the same backend and base path, and returns a BlobMeta.
If the chunk cannot be fetched from the chunk store, it returns None.
Trait Implementations§
Source§impl BlobStore for ObjectStoreBlobStore
impl BlobStore for ObjectStoreBlobStore
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
digest: &'life1 B3Digest,
) -> Pin<Box<dyn Future<Output = Result<Option<BlobMeta>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
digest: &'life1 B3Digest,
) -> Pin<Box<dyn Future<Output = Result<Option<BlobMeta>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves a BlobMeta for a given blob digest.
Auto Trait Implementations§
impl Freeze for ObjectStoreBlobStore
impl !RefUnwindSafe for ObjectStoreBlobStore
impl Send for ObjectStoreBlobStore
impl Sync for ObjectStoreBlobStore
impl Unpin for ObjectStoreBlobStore
impl UnsafeUnpin for ObjectStoreBlobStore
impl !UnwindSafe for ObjectStoreBlobStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].