HarmonyOS request.downloadFile支持断点续传吗?这是个异步方法,如果同时开启多个,有性能问题吗?

1,在文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-upload-download-0000001820880061使用了request.downloadFile进行文件的下载;参考代码:

try { 
  request.downloadFile(context, { 
    url: 'https://xxxx/xxxx.txt', 
    filePath: filesDir + '/xxxx.txt' 
  }).then((downloadTask: request.DownloadTask) => { 
    downloadTask.on('complete', () => { 
      console.info('download complete'); 
      let file = fs.openSync(filesDir + '/xxxx.txt', fs.OpenMode.READ_WRITE); 
      let arrayBuffer = new ArrayBuffer(1024); 
      let readLen = fs.readSync(file.fd, arrayBuffer); 
      let buf = buffer.from(arrayBuffer, 0, readLen); 
      console.info(`The content of file: ${buf.toString()}`); 
      fs.closeSync(file); 
    }) 
  }).catch((err: BusinessError) => { 
    console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`); 
  }); 
} catch (error) { 
  let err: BusinessError = error as BusinessError; 
  console.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`); 
}

2,请问这个异步下载方法支持断点续传吗?如果同时下载的文件比较多,比如同时下载50个,会有性能影响吗?

HarmonyOS
2024-09-06 11:30:02
浏览
已于2024-9-6 11:30:31修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

断点续传的实现需要依赖于服务器,客户端支持通过设置下载的begins和ends实现基础的分段上传下载能力,完整的断点续传功能当前需要由开发这边来实现具体的下载拼接逻辑。其中,overwrite若设置为false则在第二次下载时会报错:文件已存在,若设置为true则会覆写此文件;具体实现逻辑可参考:设置overwrite为true,下载中断后需要一个逻辑重命名并将两次下载文件进行拼接,下载完成并拼接后覆盖之前的下载文件。对应用基本没开销,主要在 SA 侧处理,SA 会对当前的所有应用提交的任务进行调度。

分享
微博
QQ
微信
回复
2024-09-06 16:35:39
相关问题
HarmonyOS request.downloadFile报错
579浏览 • 1回复 待解决
如何实现下载断点续传
1788浏览 • 0回复 待解决
request.downloadFile的url兼容处理
173浏览 • 1回复 待解决
如何用断点续传的方式下载文件
1103浏览 • 1回复 待解决
ArkTS调用js/ts代码会有性能损耗
2686浏览 • 2回复 待解决
HarmonyOS Image组件能调用异步方法
142浏览 • 1回复 待解决
static 方法支持mock
667浏览 • 1回复 待解决
有没有性能分析工具啊?
808浏览 • 1回复 待解决
requestdownloadFile与Task有什么区别
1758浏览 • 1回复 待解决
List组件性能问题,有人知道
1975浏览 • 1回复 待解决
js 怎么开启异步线程?
5937浏览 • 1回复 待解决