Appearance
transferPrepare
最后更新时间 2026-04-17
prepareTransfer(options) 用于创建文件传输任务,并返回后续上传所需的传输上下文。
- 接口标识:
file.transferPrepare - 请求类型:
FileTransferPrepareRequest - 当前状态:可接入
该接口适用于发送文件、图片或其他媒体内容前的准备阶段。业务方先调用该接口获取传输任务标识和上传端点,再进入真正的上传流程。
注意事项
- 调用前必须已完成 bootstrap 和 login。
- 该接口只负责传输准备,不包含文件内容上传本身。
- file_size、file_name、mime_type 应与实际待传输内容保持一致,避免后续上传失败。
- 当前实现阶段为 浅实现,当前可接入状态为 可接入。
- 当前方法已纳入
release/phase0正式发布承诺。
支持说明
该接口用于四端统一的文件上传前置准备能力。
| 应用能力 | Android | iOS | Harmony | PC | 发布状态 |
|---|---|---|---|---|---|
| SDK Wrapper | 支持 | 支持 | 支持 | 支持 | 已纳入 release/phase0 |
发布基线:
- android: Android 8.0+ (API 26)
- ios: iOS 15+
- harmony: HarmonyOS NEXT API 12+
- pc: Host OS with supported native bridge runtime
输入
该接口接收 FileTransferPrepareRequest 请求对象,字段定义如下。
| 名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
file_name | String | 是 | - | 待传输文件的名称。 |
file_size | u64 | 是 | - | 待传输文件大小,单位为字节。 |
mime_type | Option<String> | 否 | - | 可选 MIME 类型,用于服务端或上传端点识别文件类型。 |
说明
请求对象由业务方传入,用于触发上层 SDK API 调用。平台 wrapper 可以按各自语言习惯封装参数对象,但字段语义必须与 FileTransferPrepareRequest 保持一致。
输出
该接口成功后返回 FileTransferPrepareResponse 业务结果,字段定义如下。
| 名称 | 数据类型 | 描述 |
|---|---|---|
transfer_id | String | 本次文件传输任务的唯一标识。 |
transfer_state | String | 传输准备状态;浅实现返回 prepared。 |
upload_endpoint | String | 后续上传文件内容时使用的目标地址。 |
status | String | 接口处理状态;浅实现返回 ready。 |
状态与前置条件
- 调用前置条件:
runtime.bootstrap、auth.login - 当前 SDK 状态要求:当前用户会话有效,且待传输文件信息完整。
- 调用成功后状态:成功后不会改变 SDK 状态,返回后续上传所需的传输上下文。
示例代码
平台调用示例
| 平台 | 正式入口 | 绑定方式 | 错误返回方式 |
|---|---|---|---|
| Android | com.robin.sdk.RobinSdk | kotlin-java-facade | result-error-object |
| iOS | RobinSdk | swift-facade | throws-result-enum |
| Harmony | RobinSdk | arkts-js-facade | result-code-object |
| PC | robin_sdk_bridge | native-bridge-facade | bridge-error-code |
说明
当前仓库尚未提供该方法的真实平台 facade 调用代码片段。你可以先根据以下真实入口信息接入平台 wrapper;后续如补充 docs/examples/<platform>/file-transfer-prepare.*,页面会自动渲染对应平台示例。
错误码
| 错误码 | 描述 | 排查建议 |
|---|---|---|
invalid_argument | 输入参数无效或字段不符合接口要求。 | 根据本文输入参数说明检查必填项、字段类型和字段格式。 |
action_not_enabled | 当前接口能力未开放,或当前发布范围不支持该调用。 | 检查接口是否已纳入当前发布范围,并确认目标平台已支持该能力。 |