Skip to main content

FileStorage

Trait FileStorage 

Source
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§

Source

fn store( &self, name: &str, content: &[u8], content_type: &str, ) -> Result<StoredFile, FileStorageError>

Store file content, returning a file ID and public URL.

Source

fn get(&self, id: &str) -> Result<Vec<u8>, FileStorageError>

Retrieve file content by ID.

Source

fn delete(&self, id: &str) -> Result<bool, FileStorageError>

Delete a file by ID.

Provided Methods§

Source

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.

Implementors§