pub struct Client { /* private fields */ }Expand description
The client, used for interacting witn a Menmos cluster.
Implementations§
Source§impl Client
impl Client
Sourcepub async fn new<S: Into<String>, U: Into<String>, P: Into<String>>(
directory_host: S,
username: U,
password: P,
) -> Result<Self, ClientError>
pub async fn new<S: Into<String>, U: Into<String>, P: Into<String>>( directory_host: S, username: U, password: P, ) -> Result<Self, ClientError>
Create a new client from explicit credentials with default settings.
Sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Get a client builder to get better control on how the client is configured.
pub async fn register( &self, username: &str, password: &str, ) -> Result<String, ClientError>
Sourcepub async fn create_empty(&self, meta: Meta) -> Result<String, ClientError>
pub async fn create_empty(&self, meta: Meta) -> Result<String, ClientError>
Create an empty file on the cluster with the provided meta.
Returns the created file’s ID.
Sourcepub async fn health(&self) -> Result<String, ClientError>
pub async fn health(&self) -> Result<String, ClientError>
Send a health check request to the cluster.
Returns the cluster health status as a string.
Sourcepub async fn list_storage_nodes(
&self,
) -> Result<ListStorageNodesResponse, ClientError>
pub async fn list_storage_nodes( &self, ) -> Result<ListStorageNodesResponse, ClientError>
List all storage nodes currently authenticated with the cluster.
Sourcepub async fn push<P: AsRef<Path>>(
&self,
path: P,
meta: Meta,
) -> Result<String, ClientError>
pub async fn push<P: AsRef<Path>>( &self, path: P, meta: Meta, ) -> Result<String, ClientError>
Pushes a file with the specified meta to the cluster.
Returns the ID of the created file.
Sourcepub async fn update_blob<P: AsRef<Path>>(
&self,
blob_id: &str,
path: P,
meta: Meta,
) -> Result<String, ClientError>
pub async fn update_blob<P: AsRef<Path>>( &self, blob_id: &str, path: P, meta: Meta, ) -> Result<String, ClientError>
Update a blob’s content.
Returns the ID of the updated file. Should always be equal to blob_id.
Sourcepub async fn list_meta(
&self,
tags: Option<Vec<String>>,
meta_keys: Option<Vec<String>>,
) -> Result<MetadataList, ClientError>
pub async fn list_meta( &self, tags: Option<Vec<String>>, meta_keys: Option<Vec<String>>, ) -> Result<MetadataList, ClientError>
Lists all metadata values in the cluster.
tags is an optional whitelist of tags to compute. When absent, all tags are included.
meta_keys is an optional whitelist of keys to compute. When absent, all key/value pairs are included (this can be very expensive).
Sourcepub async fn update_meta(
&self,
blob_id: &str,
meta: Meta,
) -> Result<(), ClientError>
pub async fn update_meta( &self, blob_id: &str, meta: Meta, ) -> Result<(), ClientError>
Update a blob’s metadata without touching the contents of the file.
Sourcepub async fn fsync(&self, blob_id: &str) -> Result<(), ClientError>
pub async fn fsync(&self, blob_id: &str) -> Result<(), ClientError>
Force synchronization of a blob to its backing storage.
This is an advanced feature, and should only be called by people who know what they are doing.
Sourcepub async fn write(
&self,
blob_id: &str,
offset: u64,
buffer: Bytes,
) -> Result<(), ClientError>
pub async fn write( &self, blob_id: &str, offset: u64, buffer: Bytes, ) -> Result<(), ClientError>
Write a byte buffer to a specified offset in a blob.
Sourcepub async fn get_meta(
&self,
blob_id: &str,
) -> Result<Option<BlobMeta>, ClientError>
pub async fn get_meta( &self, blob_id: &str, ) -> Result<Option<BlobMeta>, ClientError>
Get a blob’s metadata.
Sourcepub async fn get_file(
&self,
blob_id: &str,
) -> Result<impl Stream<Item = Result<Bytes, ClientError>>, ClientError>
pub async fn get_file( &self, blob_id: &str, ) -> Result<impl Stream<Item = Result<Bytes, ClientError>>, ClientError>
Get a blob’s body as a stream of bytes.
Sourcepub async fn read_range(
&self,
blob_id: &str,
range: (u64, u64),
) -> Result<Vec<u8>, ClientError>
pub async fn read_range( &self, blob_id: &str, range: (u64, u64), ) -> Result<Vec<u8>, ClientError>
Read a subset of a blob.
The range argument is end-inclusive.
Sourcepub async fn query(&self, query: Query) -> Result<QueryResponse, ClientError>
pub async fn query(&self, query: Query) -> Result<QueryResponse, ClientError>
Send a query to the cluster.
Sourcepub async fn delete(&self, blob_id: String) -> Result<(), ClientError>
pub async fn delete(&self, blob_id: String) -> Result<(), ClientError>
Delete a blob from the cluster.
pub async fn get_routing_config( &self, ) -> Result<Option<RoutingConfig>, ClientError>
pub async fn set_routing_config( &self, routing_config: &RoutingConfig, ) -> Result<(), ClientError>
pub async fn delete_routing_config(&self) -> Result<(), ClientError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.