pub async fn upload_object<E, C>(
client: Arc<Client>,
bucket: BucketId,
key: String,
source_path: PathBuf,
request_id: String,
channel: &E,
registry: TransferRegistryHandle,
lock_registry: Arc<LockRegistry>,
multipart_table: Arc<MultipartTable>,
transfer_concurrency_per_part: u32,
profile_id: ProfileId,
lock_ttl_secs: u64,
cancel_flag: Arc<AtomicBool>,
log: NotificationLogHandle,
os_notifier: &OsNotifier<C>,
) -> Result<(), AppError>where
E: EventEmitter,
C: OsNotifyChannel,Expand description
Upload source_path to bucket/key.
§Parameters
client— authenticated S3 client.bucket— target bucket.key— target S3 key.source_path— local file to upload.request_id— UUID v4 fromTransferRegistry::register.channel— event emitter.registry— transfer registry for state updates.lock_registry— resource lock registry.multipart_table— redb multipart bookkeeping table.transfer_concurrency_per_part— semaphore width for concurrent parts (default 4).profile_id— used for lock scope and multipart records.lock_ttl_secs— lock TTL.cancel_flag— set totruewhen the caller wants cancellation.log— in-app notification log for terminal-state notifications.os_notifier— OS notification bridge (settings-gated internally).