pub trait DataStore {
type UploadType: SendUpload;
// Required methods
async fn create_upload(
&self,
info: UploadInfo,
) -> Result<Self::UploadType, TusError>;
async fn get_upload(
&self,
id: &UploadId,
) -> Result<Self::UploadType, TusError>;
}Expand description
Core storage abstraction.
Implement this trait to plug in any persistence backend (filesystem, S3, etc.).
The associated UploadType must implement all upload operations; return
TusError::ExtensionNotEnabled from extension methods your store doesn’t support.
Required Associated Types§
type UploadType: SendUpload
Required Methods§
Sourceasync fn create_upload(
&self,
info: UploadInfo,
) -> Result<Self::UploadType, TusError>
async fn create_upload( &self, info: UploadInfo, ) -> Result<Self::UploadType, TusError>
Create a new upload slot and return a handle to it.
Sourceasync fn get_upload(&self, id: &UploadId) -> Result<Self::UploadType, TusError>
async fn get_upload(&self, id: &UploadId) -> Result<Self::UploadType, TusError>
Retrieve an existing upload by ID.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.