pub struct Filesystem { /* private fields */ }
Expand description
The Filesystem struct is an implementation of the StorageBackend trait that keeps its files inside a specific root directory on local disk.
Implementations§
Source§impl Filesystem
impl Filesystem
Trait Implementations§
Source§impl Debug for Filesystem
impl Debug for Filesystem
Source§impl<User: UserDetail> StorageBackend<User> for Filesystem
impl<User: UserDetail> StorageBackend<User> for Filesystem
Source§fn enter(&mut self, user_detail: &User) -> Result<()>
fn enter(&mut self, user_detail: &User) -> Result<()>
Restrict the backend’s capabilities commensurate with the provided
UserDetail
. Read moreSource§fn supported_features(&self) -> u32
fn supported_features(&self) -> u32
Tells which optional features are supported by the storage back-end
Return a value with bits set according to the FEATURE_* constants.
Source§fn metadata<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Self::Metadata>> + Send + 'async_trait>>
fn metadata<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Self::Metadata>> + Send + 'async_trait>>
Returns the
Metadata
for the given file.Source§fn list<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Vec<Fileinfo<PathBuf, Self::Metadata>>>> + Send + 'async_trait>>
fn list<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Vec<Fileinfo<PathBuf, Self::Metadata>>>> + Send + 'async_trait>>
Returns the list of files in the given directory.
Source§fn get<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
start_pos: u64,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn AsyncRead + Send + Sync + Unpin>>> + Send + 'async_trait>>
fn get<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, start_pos: u64, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AsyncRead + Send + Sync + Unpin>>> + Send + 'async_trait>>
Returns the content of the given file from offset start_pos.
The starting position will only be greater than zero if the storage back-end implementation
advertises to support partial reads through the supported_features method i.e. the result
from supported_features yield 1 if a logical and operation is applied with FEATURE_RESTART.
Source§fn put<'life0, 'life1, 'async_trait, P, R>(
&'life0 self,
_user: &'life1 User,
bytes: R,
path: P,
start_pos: u64,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
fn put<'life0, 'life1, 'async_trait, P, R>( &'life0 self, _user: &'life1 User, bytes: R, path: P, start_pos: u64, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
Writes bytes from the given reader to the specified path starting at offset start_pos in the file
Source§fn del<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn del<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Deletes the file at the given path.
Source§fn rmd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn rmd<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Deletes the given directory.
Source§fn mkd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn mkd<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Creates the given directory.
Source§fn rename<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 User,
from: P,
to: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn rename<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 User, from: P, to: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Renames the given file to the given new filename.
Source§fn cwd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn cwd<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Changes the working directory to the given path.
Source§fn name(&self) -> &str
fn name(&self) -> &str
Implement to set the name of the storage back-end. By default it returns the type signature.
Source§fn md5<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
fn md5<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
Returns the MD5 hash for the given file. Read more
Source§fn list_fmt<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
fn list_fmt<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
Returns some bytes that make up a directory listing that can immediately be sent to the client.
Source§fn list_vec<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
fn list_vec<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
Returns directory listing as a vec of strings used for multi line response in the control channel.
Source§fn nlst<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
fn nlst<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
Returns some bytes that make up a NLST directory listing (only the basename) that can
immediately be sent to the client.
Source§fn get_into<'a, 'life0, 'life1, 'async_trait, P, W>(
&'life0 self,
user: &'life1 User,
path: P,
start_pos: u64,
output: &'a mut W,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
fn get_into<'a, 'life0, 'life1, 'async_trait, P, W>( &'life0 self, user: &'life1 User, path: P, start_pos: u64, output: &'a mut W, ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
Gets the content of the given FTP file from offset start_pos file by copying it to the output writer.
The starting position will only be greater than zero if the storage back-end implementation
advertises to support partial reads through the supported_features method i.e. the result
from supported_features yield 1 if a logical and operation is applied with FEATURE_RESTART.
Auto Trait Implementations§
impl Freeze for Filesystem
impl RefUnwindSafe for Filesystem
impl Send for Filesystem
impl Sync for Filesystem
impl Unpin for Filesystem
impl UnwindSafe for Filesystem
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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