本文共 1203 字,大约阅读时间需要 4 分钟。
在视联网业务中,图片、视频等大数据文件的存储对OSS接入产生了重要需求。本文将从传统WEB端直传方式到服务端签名优传的过程进行分析。
传统的WEB端直传方式通常包括以下步骤:用户在浏览器或APP中上传文件至应用服务器,随后应用服务器再将文件上传至OSS。这种方式虽然常用,但存在以下问题:
上传速度慢:数据需要经过应用服务器再次上传,网络传输效率较低。直接将文件发送至OSS可大幅提升传输效率,尤其是在采用BGP带宽的OSS环境中。
扩展性差:随着用户数量增加,应用服务器可能成为性能瓶颈。
成本高:OSS上传流量通常是免费的,直接直传至OSS可节省维护应用服务器的成本。
针对上述问题,服务端签名后直传方式提供了更优的解决方案。这种方式通过在客户端生成签名,确保文件完整性和合法性,从而实现高效的OSS直传。
在实际应用中,我们选择了UXCore-Uploader进行OSS直传。该工具具备以下特点:
MD5秒传功能:确保文件完整性验证。
分片上传:支持大文件上传。
多种运行时环境支持:包括HTML5和Flash。
灵活的收集器配置:支持DndCollector、PasteCollector、PickerCollector等多种文件集成方式。
支持ES6规范:确保代码的现代化和兼容性。
具体实现步骤如下:
获取后端签名信息:通过fetch请求获取签名认证信息URL,提取所需参数并配置Uploader。
Uploader配置:根据项目需求配置accept属性,指定支持的文件类型,并设置URL和参数。
处理OSS返回数据:由于OSS返回数据中缺少response字段,需要通过UploadCore的钩子进行数据处理和定制。
在实际应用中,我们遇到了以下问题:
OSS返回数据缺少response字段:导致Uploader报错。
解决方案:通过修改UploadCore的onfileuploadcompleting钩子,手动添加response字段,确保上传完成后的数据处理正确。
钩子机制优化:将签名认证信息获取逻辑放入onfileuploadpreparing钩子中,提升代码可维护性。
上传完成处理:在onfileuploadcompleted钩子中获取上传完成的相关信息,确保数据正确获取和处理。
本文通过从传统WEB端直传到服务端签名优传的过程,探讨了使用UXCore-Uploader在OSS直传中的应用场景和优化方法。通过对OSS返回数据的处理和对UploadCore钩子的灵活运用,我们成功解决了直传过程中的问题。UXCore-Uploader的灵活性和可扩展性使其成为OSS直传的理想选择。
转载地址:http://hfvfk.baihongyu.com/