pub trait FileStorage: Send + Sync {
// Required methods
fn store(
&self,
name: &str,
content: &[u8],
content_type: &str,
) -> Result<StoredFile, FileStorageError>;
fn get(&self, id: &str) -> Result<Vec<u8>, FileStorageError>;
fn delete(&self, id: &str) -> Result<bool, FileStorageError>;
// Provided method
fn presigned_upload_url(
&self,
_name: &str,
_content_type: &str,
_expires_secs: u64,
) -> Result<Option<String>, FileStorageError> { ... }
}Expand description
Pluggable file storage backend.
Required Methods§
Sourcefn store(
&self,
name: &str,
content: &[u8],
content_type: &str,
) -> Result<StoredFile, FileStorageError>
fn store( &self, name: &str, content: &[u8], content_type: &str, ) -> Result<StoredFile, FileStorageError>
Store file content, returning a file ID and public URL.
Provided Methods§
Sourcefn presigned_upload_url(
&self,
_name: &str,
_content_type: &str,
_expires_secs: u64,
) -> Result<Option<String>, FileStorageError>
fn presigned_upload_url( &self, _name: &str, _content_type: &str, _expires_secs: u64, ) -> Result<Option<String>, FileStorageError>
Generate a presigned upload URL (for direct client uploads). Not all backends support this — returns None if unsupported.