pub struct LocalStorageEngine { /* private fields */ }Expand description
本地存储引擎 — 对齐 PHP storage\engine\Local
PHP 第 20-23 行:upload 区分 isInternal
PHP 第 28-38 行:uploadByExternal 用 Filesystem::disk('public')->putFile
PHP 第 43-54 行:uploadByInternal 用 rename
PHP 第 59-64 行:delete Elvis 短路 !file_exists($filePath) ?: unlink($filePath)
Implementations§
Source§impl LocalStorageEngine
impl LocalStorageEngine
Sourcepub fn new(config: EngineConfig) -> Self
pub fn new(config: EngineConfig) -> Self
创建本地存储引擎实例
Sourcepub fn upload_dir(&self) -> PathBuf
pub fn upload_dir(&self) -> PathBuf
获取上传目录 — 对齐 PHP WEB_PATH . 'uploads'
PHP 行为:$uplodDir = WEB_PATH . 'uploads';
Rust 端:config.base_path + uploads
Trait Implementations§
Source§impl StorageEngine for LocalStorageEngine
impl StorageEngine for LocalStorageEngine
Source§fn upload<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, UploadError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn upload<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, UploadError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
执行文件上传 — 对齐 PHP
Server::upload()(abstract) Read moreSource§fn delete<'life0, 'life1, 'async_trait>(
&'life0 mut self,
file_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, UploadError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 mut self,
file_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, UploadError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
执行文件删除 — 对齐 PHP
Server::delete($fileName)(abstract) Read moreSource§fn file_info(&self) -> Option<&UploadFileInfo>
fn file_info(&self) -> Option<&UploadFileInfo>
获取文件信息 — 对齐 PHP
Server::getFileInfo()Source§fn set_upload_file(&mut self, file: &UploadedFile) -> Result<(), UploadError>
fn set_upload_file(&mut self, file: &UploadedFile) -> Result<(), UploadError>
设置上传文件 — 对齐 PHP
Server::setUploadFile($name) Read moreSource§fn set_upload_file_by_real(
&mut self,
file_path: &Path,
extension: &str,
) -> Result<(), UploadError>
fn set_upload_file_by_real( &mut self, file_path: &Path, extension: &str, ) -> Result<(), UploadError>
设置内部上传文件 — 对齐 PHP
Server::setUploadFileByReal($filePath, $extension) Read moreSource§fn is_internal(&self) -> bool
fn is_internal(&self) -> bool
是否内部上传
Auto Trait Implementations§
impl Freeze for LocalStorageEngine
impl RefUnwindSafe for LocalStorageEngine
impl Send for LocalStorageEngine
impl Sync for LocalStorageEngine
impl Unpin for LocalStorageEngine
impl UnsafeUnpin for LocalStorageEngine
impl UnwindSafe for LocalStorageEngine
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.