简介
本文档提供关于文件上传的 API 概览以及 SDK 示例代码。
高级上传
功能说明
该上传方法内部会自动进行快速上传、简单上传、分块上传的逻辑,生成的 uploadTask 可以供外部进行暂停、恢复、取消等。
示例代码
SDK 支持 Uri 以及输入流。下面以 Uri 为例:
//要上传的本地文件val file = File.createTempFile("uploadBigMedia", ".jpg")//获取上传任务val uploadTask = smh.upload(//上传到服务端的名称name = "uploadBigMedia.jpg",//所在文件夹,默认是根目录下dir = Directory(),//本地文件 Uriuri = Uri.fromFile(file),//状态监听器stateListener = object : SMHStateListener {override fun onStateChange(request: SMHRequest, state: SMHTransferState) {Log.i("Test", "onStateChange $state")}},//进度监听器progressListener = object: SMHProgressListener {override fun onProgressChange(request: SMHRequest, progress: Long, target: Long) {Log.i("Test", "Progress change $progress/$target")}},//结果监听器resultListener = object: SMHResultListener {override fun onSuccess(request: SMHRequest, result: SMHResult) {Log.i("Test", "onSuccess")}override fun onFailure(request: SMHRequest,smhException: SMHException?,smhClientException: SMHClientException?) {Log.i("Test", "onFailure $smhException and ")}})launch {delay(5000)//暂停上传任务uploadTask.pause(true)}//开始上传任务uploadTask.start()delay(2000)//恢复上传任务uploadTask.resume()