tus-js-client - 持续上传的JavaScript利器

tus-js-client - 持续上传的JavaScript利器

tus-js-clientA pure JavaScript client for the tus resumable upload protocol项目地址:https://gitcode.com/gh_mirrors/tu/tus-js-client

在当今互联网时代,大文件上传已成为日常操作,但是网络不稳定导致的中断问题常常困扰着我们。为了解决这一问题,我们推荐使用tus-js-client,一个基于HTTP协议的纯JavaScript客户端库,支持断点续传功能。

项目介绍

tus-js-client遵循tus resumable upload protocol,能够在浏览器、Node.js、React Native和Apache Cordova应用中无缝工作。通过该协议,文件上传可以被暂停并在任何时刻恢复,无需重新上传已经传输的数据,极大地提高了上传效率和用户体验。

协议版本: 1.0.0

技术分析

tus-js-client的核心特性是其断点续传机制。当上传过程中出现网络故障或用户主动暂停时,它会保存已上传的数据位置信息。待条件恢复后,它能从上次中断的地方继续上传,而不是从头开始。此外,库还提供了错误处理回调、进度更新回调以及元数据设置等功能,方便开发者进行自定义扩展。

应用场景

  • 文件共享平台:用户可以在网络状况不佳时暂停上传,稍后再继续。
  • 视频/音频流服务:大型媒体文件的后台自动上传,避免因网络波动影响用户其他操作。
  • 远程协作工具:实时同步大量文件,即使在网络不稳定的环境下也能保证数据完整性。

项目特点

  • 兼容性强:支持多种运行环境,包括浏览器、Node.js、React Native和Apache Cordova。
  • 易用性高:提供清晰的API接口,附带详尽的文档,使得集成简单快速。
  • 断点续传:实现了真正意义上的断点续传,提高文件上传的成功率和用户体验。
  • 鲁棒性好:内置重试策略,遇到网络问题可自动延迟重试,减少失败的可能性。

查看以下简单示例,体验如何使用tus-js-client

//监听输入元素的变化
input.addEventListener('change', function (e) {
  //获取选定的文件
  const file = e.target.files[0];

  //创建新的tus上传
  const upload = new tus.Upload(file, {
    endpoint: 'http://localhost:1080/files/',
    retryDelays: [0, 3000, 5000, 10000, 20000],
    metadata: {
      filename: file.name,
      filetype: file.type,
    },
    //错误处理
    onError: function (error) {
      console.log('Failed because: ' + error);
    },
    //进度更新
    onProgress: function (bytesUploaded, bytesTotal) {
      const percentage = ((bytesUploaded / bytesTotal) * 100).toFixed(2);
      console.log(bytesUploaded, bytesTotal, `${percentage}%`);
    },
    //成功回调
    onSuccess: function () {
      console.log(`Download ${upload.file.name} from ${upload.url}`);
    },
  });

  //检查是否有之前的上传记录
  upload.findPreviousUploads().then(function (previousUploads) {
    //如果有,就从上一次的上传状态恢复
    if (previousUploads.length) {
      upload.resumeFromPreviousUpload(previousUploads[0]);
    }

    //开始上传
    upload.start();
  });
});

请参阅tus-js-client的官方文档以获取更多关于安装、使用、API及贡献指南的信息。

立即开始你的断点续传之旅!

查看源代码

tus-js-clientA pure JavaScript client for the tus resumable upload protocol项目地址:https://gitcode.com/gh_mirrors/tu/tus-js-client

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚翔林Shannon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值