pub trait FileStore {
// Required methods
fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Vec<u8>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
fn upload_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Pin<Box<dyn Stream<Item = Result<Bytes, Error>>>>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
fn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn download_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<Bytes, Error>>>, UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn get_direct_download_url<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn get_cache_files_folder_path(&self) -> Result<&Path, UtilError>;
// Provided methods
fn get_download_url(
&self,
path: &Path,
app_conf: &ApplicationConfiguration,
) -> String { ... }
fn fetch_file_content_or_use_filesystem_cache<'life0, 'life1, 'async_trait>(
&'life0 self,
file_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, UtilError>> + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait { ... }
}
Expand description
Allows storing files to a file storage backend.
Required Methods§
Sourcefn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Vec<u8>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Vec<u8>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Upload a file that’s in memory to a path.
Sourcefn upload_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Pin<Box<dyn Stream<Item = Result<Bytes, Error>>>>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn upload_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Path,
contents: Pin<Box<dyn Stream<Item = Result<Bytes, Error>>>>,
mime_type: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Upload a file without loading the whole file to memory
Sourcefn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn download<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Download a file to memory.
Sourcefn download_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<Bytes, Error>>>, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn download_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<Bytes, Error>>>, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Download a file without loading the whole file to memory.
Sourcefn get_direct_download_url<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_direct_download_url<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String, UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get a url that can be used to download the file without authentication for a while. In most cases you probably want to use get_download_url() instead.
Sourcefn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), UtilError>> + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Delete a file.
Sourcefn get_cache_files_folder_path(&self) -> Result<&Path, UtilError>
fn get_cache_files_folder_path(&self) -> Result<&Path, UtilError>
This function returns a path to a folder where downloaded files can be cached.
Provided Methods§
Sourcefn get_download_url(
&self,
path: &Path,
app_conf: &ApplicationConfiguration,
) -> String
fn get_download_url( &self, path: &Path, app_conf: &ApplicationConfiguration, ) -> String
Get a url for a file in FileStore that can be used to access the resource.