pub trait MultiPartsUploaderScheduler<A>:
DynClone
+ Send
+ Sync
+ Debugwhere
A: Digest,{
// Required methods
fn set_concurrency_provider(
&mut self,
concurrency_provider: Box<dyn ConcurrencyProvider>,
);
fn set_data_partition_provider(
&mut self,
data_partition_provider: Box<dyn DataPartitionProvider>,
);
fn upload(
&self,
source: Box<dyn DataSource<A>>,
params: ObjectParams,
) -> Result<Value, Error>;
fn async_upload(
&self,
source: Box<dyn AsyncDataSource<A>>,
params: ObjectParams,
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + Send + '_>>;
}
Expand description
分片上传调度器接口
负责分片上传的调度,包括初始化分片信息、上传分片、完成分片上传。
Required Methods§
Sourcefn set_concurrency_provider(
&mut self,
concurrency_provider: Box<dyn ConcurrencyProvider>,
)
fn set_concurrency_provider( &mut self, concurrency_provider: Box<dyn ConcurrencyProvider>, )
设置并发数提供者
Sourcefn set_data_partition_provider(
&mut self,
data_partition_provider: Box<dyn DataPartitionProvider>,
)
fn set_data_partition_provider( &mut self, data_partition_provider: Box<dyn DataPartitionProvider>, )
设置分片大小提供者
Sourcefn upload(
&self,
source: Box<dyn DataSource<A>>,
params: ObjectParams,
) -> Result<Value, Error>
fn upload( &self, source: Box<dyn DataSource<A>>, params: ObjectParams, ) -> Result<Value, Error>
上传数据源
该方法的异步版本为 Self::async_upload
。
Sourcefn async_upload(
&self,
source: Box<dyn AsyncDataSource<A>>,
params: ObjectParams,
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + Send + '_>>
fn async_upload( &self, source: Box<dyn AsyncDataSource<A>>, params: ObjectParams, ) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + Send + '_>>
异步上传数据源