pub enum StorageBackend {
Local(LocalStorage),
S3(S3Storage),
Gcs(GcsStorage),
Azure(AzureStorage),
}Expand description
Storage backend selected via SHAPERAIL_STORAGE_BACKEND env var.
Uses enum dispatch to avoid async trait object complexity.
Variants§
Implementations§
Source§impl StorageBackend
impl StorageBackend
Sourcepub fn from_name(name: &str) -> Result<Self, StorageError>
pub fn from_name(name: &str) -> Result<Self, StorageError>
Create a storage backend from an explicit backend name.
Sourcepub fn from_env() -> Result<Self, StorageError>
pub fn from_env() -> Result<Self, StorageError>
Create a storage backend from the SHAPERAIL_STORAGE_BACKEND env var.
Supported values: local, s3, gcs, azure.
Defaults to local if not set.
Sourcepub async fn upload(
&self,
path: &str,
data: &[u8],
mime_type: &str,
) -> Result<FileMetadata, StorageError>
pub async fn upload( &self, path: &str, data: &[u8], mime_type: &str, ) -> Result<FileMetadata, StorageError>
Upload file data to storage under the given path.
Sourcepub async fn download(&self, path: &str) -> Result<Vec<u8>, StorageError>
pub async fn download(&self, path: &str) -> Result<Vec<u8>, StorageError>
Download file data from storage at the given path.
Sourcepub async fn delete(&self, path: &str) -> Result<(), StorageError>
pub async fn delete(&self, path: &str) -> Result<(), StorageError>
Delete a file from storage at the given path.
Sourcepub async fn signed_url(
&self,
path: &str,
expires_secs: u64,
) -> Result<String, StorageError>
pub async fn signed_url( &self, path: &str, expires_secs: u64, ) -> Result<String, StorageError>
Generate a time-limited signed URL for downloading the file.
Auto Trait Implementations§
impl Freeze for StorageBackend
impl !RefUnwindSafe for StorageBackend
impl Send for StorageBackend
impl Sync for StorageBackend
impl Unpin for StorageBackend
impl UnsafeUnpin for StorageBackend
impl !UnwindSafe for StorageBackend
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request