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