async fn multipart_upload<E: EventEmitter>(
client: &Client,
bucket: &BucketId,
key: &str,
source_path: &PathBuf,
total_bytes: u64,
request_id: &str,
channel: &E,
registry: &TransferRegistryHandle,
multipart_table: &MultipartTable,
transfer_concurrency_per_part: u32,
profile_id: &ProfileId,
cancel_flag: &AtomicBool,
) -> Result<(), AppError>