pub struct LocalBackend { /* private fields */ }Expand description
Local filesystem backend for file chunk storage and reconstruction metadata.
Implementations§
Source§impl LocalBackend
impl LocalBackend
Sourcepub async fn upload_file(
&self,
file_id: &str,
body: Bytes,
repository_scope: Option<&RepositoryScope>,
) -> Result<UploadFileResponse, ServerError>
pub async fn upload_file( &self, file_id: &str, body: Bytes, repository_scope: Option<&RepositoryScope>, ) -> Result<UploadFileResponse, ServerError>
Stores a file version as deduplicated content chunks.
§Errors
Returns ServerError when file identifier validation, chunk persistence, or
metadata persistence fails.
Sourcepub async fn reconstruction(
&self,
file_id: &str,
content_hash: Option<&str>,
requested_range: Option<ByteRange>,
repository_scope: Option<&RepositoryScope>,
) -> Result<FileReconstructionResponse, ServerError>
pub async fn reconstruction( &self, file_id: &str, content_hash: Option<&str>, requested_range: Option<ByteRange>, repository_scope: Option<&RepositoryScope>, ) -> Result<FileReconstructionResponse, ServerError>
Loads reconstruction metadata for a file.
§Errors
Returns ServerError when the file identifier is invalid or the record is
missing or unreadable.
Sourcepub async fn file_total_bytes(
&self,
file_id: &str,
content_hash: Option<&str>,
repository_scope: Option<&RepositoryScope>,
) -> Result<u64, ServerError>
pub async fn file_total_bytes( &self, file_id: &str, content_hash: Option<&str>, repository_scope: Option<&RepositoryScope>, ) -> Result<u64, ServerError>
Loads the logical byte length for a file version.
§Errors
Returns ServerError when the file identifier is invalid or the record is
missing or unreadable.
Sourcepub async fn download_file(
&self,
file_id: &str,
content_hash: Option<&str>,
repository_scope: Option<&RepositoryScope>,
) -> Result<Vec<u8>, ServerError>
pub async fn download_file( &self, file_id: &str, content_hash: Option<&str>, repository_scope: Option<&RepositoryScope>, ) -> Result<Vec<u8>, ServerError>
Reconstructs a file into a contiguous byte vector.
§Errors
Returns ServerError when metadata or chunk bytes cannot be read.
Sourcepub async fn read_chunk(&self, hash_hex: &str) -> Result<Vec<u8>, ServerError>
pub async fn read_chunk(&self, hash_hex: &str) -> Result<Vec<u8>, ServerError>
Reads a stored chunk by hash.
§Errors
Returns ServerError when the hash is invalid or the chunk is missing.
Sourcepub async fn read_chunk_for_file_version(
&self,
hash_hex: &str,
file_id: &str,
content_hash: &str,
repository_scope: Option<&RepositoryScope>,
) -> Result<Vec<u8>, ServerError>
pub async fn read_chunk_for_file_version( &self, hash_hex: &str, file_id: &str, content_hash: &str, repository_scope: Option<&RepositoryScope>, ) -> Result<Vec<u8>, ServerError>
Reads a stored chunk only when it is reachable from a concrete file version.
§Errors
Returns ServerError when the hash, file identifier, or content hash are
invalid, when the file version is missing, or when the chunk is not referenced
by that version.
Sourcepub async fn chunk_length(&self, hash_hex: &str) -> Result<u64, ServerError>
pub async fn chunk_length(&self, hash_hex: &str) -> Result<u64, ServerError>
Loads the stored byte length for a chunk object.
§Errors
Returns ServerError when the hash is invalid or the chunk is missing.
Source§impl LocalBackend
impl LocalBackend
Sourcepub async fn upload_xorb(
&self,
expected_hash: &str,
body: Bytes,
) -> Result<XorbUploadResponse, ServerError>
pub async fn upload_xorb( &self, expected_hash: &str, body: Bytes, ) -> Result<XorbUploadResponse, ServerError>
Stores a raw xorb body under its content hash.
§Errors
Returns ServerError when the supplied hash is invalid, the body hash does not
match, or persistence fails.
Sourcepub async fn xorb_length(&self, hash_hex: &str) -> Result<u64, ServerError>
pub async fn xorb_length(&self, hash_hex: &str) -> Result<u64, ServerError>
Loads the stored byte length for a serialized xorb object.
§Errors
Returns ServerError when the hash is invalid or the xorb is missing.
Source§impl LocalBackend
impl LocalBackend
Sourcepub async fn new(
root: PathBuf,
public_base_url: String,
chunk_size: NonZeroUsize,
) -> Result<Self, ServerError>
pub async fn new( root: PathBuf, public_base_url: String, chunk_size: NonZeroUsize, ) -> Result<Self, ServerError>
Creates a local backend and initializes its directory structure.
§Errors
Returns ServerError when the local directories cannot be created.
Sourcepub async fn new_with_upload_parallelism(
root: PathBuf,
public_base_url: String,
chunk_size: NonZeroUsize,
upload_max_in_flight_chunks: NonZeroUsize,
) -> Result<Self, ServerError>
pub async fn new_with_upload_parallelism( root: PathBuf, public_base_url: String, chunk_size: NonZeroUsize, upload_max_in_flight_chunks: NonZeroUsize, ) -> Result<Self, ServerError>
Creates a local backend with explicit upload chunk parallelism.
§Errors
Returns ServerError when the local directories cannot be created.
Sourcepub fn public_base_url(&self) -> &str
pub fn public_base_url(&self) -> &str
Returns the public base URL used in generated download links.
Sourcepub async fn ready(&self) -> Result<(), ServerError>
pub async fn ready(&self) -> Result<(), ServerError>
Verifies that local storage paths remain reachable.
§Errors
Returns ServerError when the local object store or metadata roots cannot be
traversed.
Sourcepub async fn stats(&self) -> Result<ServerStatsResponse, ServerError>
pub async fn stats(&self) -> Result<ServerStatsResponse, ServerError>
Returns local backend storage stats.
§Errors
Returns ServerError when local metadata cannot be traversed.
Trait Implementations§
Source§impl Clone for LocalBackend
impl Clone for LocalBackend
Source§fn clone(&self) -> LocalBackend
fn clone(&self) -> LocalBackend
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for LocalBackend
impl !UnwindSafe for LocalBackend
impl Freeze for LocalBackend
impl Send for LocalBackend
impl Sync for LocalBackend
impl Unpin for LocalBackend
impl UnsafeUnpin for LocalBackend
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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