拍后传输下载的历史照片切换模式后不再自动补传;刷新相机文件仅同步本地。重试上传后刷新单张状态,并忽略乱序 pipeline 通知导致的已上传回退。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.2 KiB
1.2 KiB
CameraTransfer
职责
编排相机照片从下载到上传的通用流程,通过 CameraAssetUploadSink 与业务层解耦。
核心组件
| 组件 | 说明 |
|---|---|
CameraTransferPipeline |
监听 onNewAsset、管理任务队列与上传 |
CameraTransferTask |
单条传输任务及状态 |
CameraAssetUploadSink |
上传协议,由业务模块实现 |
业务流程
- 相机服务回调
onNewAsset。 - Pipeline 下载文件到本地并更新任务状态。
- 若照片是在开启自动上传时由
onNewAsset新发现,加入自动上传资格队列并调用CameraAssetUploadSink.upload。 - 上传成功后任务状态变为
uploaded。
syncExistingPhotos() 仅同步相机历史照片到本地任务列表,不授予自动上传资格。拍后传输模式下已下载的 downloaded 任务,切换到边拍边传后仍保持待上传,只有业务层显式调用 uploadAssets(withIDs:) 或 retryUpload(...) 时才会上传。
与业务层关系
- 旅拍相册通过
TravelAlbumMaterialUploader实现 Sink:OSS 上传 +upload-material登记。 - Pipeline 不依赖任何 HTTP 或 OSS 具体实现。