pub struct FileStoragePlugin { /* private fields */ }Expand description
Plugin that provides file upload, download, deletion, and metadata queries.
Implementations§
Source§impl FileStoragePlugin
impl FileStoragePlugin
Sourcepub fn new(backend: Box<dyn StorageBackend + Send + Sync>) -> Self
pub fn new(backend: Box<dyn StorageBackend + Send + Sync>) -> Self
Create a new FileStoragePlugin backed by the given storage backend.
Sourcepub fn local(dir: impl AsRef<Path>) -> Result<Self, String>
pub fn local(dir: impl AsRef<Path>) -> Result<Self, String>
Create a plugin using a LocalBackend rooted at dir.
Sourcepub fn upload(
&self,
data: &[u8],
content_type: &str,
original_name: &str,
) -> Result<FileInfo, String>
pub fn upload( &self, data: &[u8], content_type: &str, original_name: &str, ) -> Result<FileInfo, String>
Upload a file. Returns a FileInfo describing the stored object.
Sourcepub fn download(&self, id: &str) -> Result<Vec<u8>, String>
pub fn download(&self, id: &str) -> Result<Vec<u8>, String>
Download the raw bytes of a stored file.
Sourcepub fn delete(&self, id: &str) -> Result<bool, String>
pub fn delete(&self, id: &str) -> Result<bool, String>
Delete a file by ID. Returns true if it existed.
Sourcepub fn get_metadata(&self, id: &str) -> Option<FileMetadata>
pub fn get_metadata(&self, id: &str) -> Option<FileMetadata>
Get metadata for a file.
Sourcepub fn list_files(&self) -> Vec<String>
pub fn list_files(&self) -> Vec<String>
List all stored file IDs.
Trait Implementations§
Source§impl Plugin for FileStoragePlugin
impl Plugin for FileStoragePlugin
Source§fn on_init(&self, _ctx: &PluginContext)
fn on_init(&self, _ctx: &PluginContext)
Called once when the plugin is registered.
Source§fn routes(&self) -> Vec<PluginRoute>
fn routes(&self) -> Vec<PluginRoute>
Custom API routes this plugin handles.
Source§fn before_insert(
&self,
_entity: &str,
_data: &mut Value,
_auth: &AuthContext,
) -> Result<(), PluginError>
fn before_insert( &self, _entity: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError>
Called before an entity insert. Return Err to reject.
Source§fn after_insert(
&self,
_entity: &str,
_id: &str,
_data: &Value,
_auth: &AuthContext,
)
fn after_insert( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, )
Called after a successful insert.
Source§fn before_update(
&self,
_entity: &str,
_id: &str,
_data: &mut Value,
_auth: &AuthContext,
) -> Result<(), PluginError>
fn before_update( &self, _entity: &str, _id: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError>
Called before an entity update. Return Err to reject.
Source§fn after_update(
&self,
_entity: &str,
_id: &str,
_data: &Value,
_auth: &AuthContext,
)
fn after_update( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, )
Called after a successful update.
Source§fn before_delete(
&self,
_entity: &str,
_id: &str,
_auth: &AuthContext,
) -> Result<(), PluginError>
fn before_delete( &self, _entity: &str, _id: &str, _auth: &AuthContext, ) -> Result<(), PluginError>
Called before an entity delete. Return Err to reject.
Source§fn after_delete(&self, _entity: &str, _id: &str, _auth: &AuthContext)
fn after_delete(&self, _entity: &str, _id: &str, _auth: &AuthContext)
Called after a successful delete.
Source§fn on_request(
&self,
_method: &str,
_path: &str,
_auth: &AuthContext,
) -> Result<(), PluginError>
fn on_request( &self, _method: &str, _path: &str, _auth: &AuthContext, ) -> Result<(), PluginError>
Called on every incoming request (middleware).
Source§fn on_request_with_meta(
&self,
method: &str,
path: &str,
auth: &AuthContext,
_meta: &RequestMeta<'_>,
) -> Result<(), PluginError>
fn on_request_with_meta( &self, method: &str, path: &str, auth: &AuthContext, _meta: &RequestMeta<'_>, ) -> Result<(), PluginError>
Richer variant of [
on_request] that also receives per-request
metadata (peer IP today; more fields may be added later). The
default implementation delegates to on_request so existing
plugins keep working without changes. Plugins that care about
IP — notably rate limiting — override this hook.Source§fn on_session_create(&self, _user_id: &str, _token: &str)
fn on_session_create(&self, _user_id: &str, _token: &str)
Called when a new session is created.
Source§fn entities(&self) -> Vec<ManifestEntity>
fn entities(&self) -> Vec<ManifestEntity>
Additional manifest entities this plugin contributes.
Auto Trait Implementations§
impl !Freeze for FileStoragePlugin
impl !RefUnwindSafe for FileStoragePlugin
impl Send for FileStoragePlugin
impl Sync for FileStoragePlugin
impl Unpin for FileStoragePlugin
impl UnsafeUnpin for FileStoragePlugin
impl !UnwindSafe for FileStoragePlugin
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