找回密码
 立即注册

QQ登录

只需一步,快速开始

Edric.Li

中级会员

5

主题

249

帖子

852

积分

中级会员

积分
852
QQ
Edric.Li
中级会员   /  发表于:2023-3-9 22:19  /   查看:8322  /  回复:37
本帖最后由 Edric.Li 于 2023-3-10 08:54 编辑

在日常工作中,文件上传是一个很常见的功能。在项目开发过程中,我们通常都会使用官方提供的附件上传,图片上传以及FilePreview来实现对应的功能。
可能有人会有疑问,现在有这么多的插件都能上传文件,你这个插件还有什么意义呢。
至于为什么要做这个插件,其实没有为什么,就是想做。。。。。

第一版插件理想状态下会支持以下功能
  • 单文件上传
  • 多文件上传
  • 大文件分块上传
  • 增加目录存储
  • 与官方的云存储对接

大文件上传
大文件上传其实包含了分块上传和断点续传/秒传

适用场景:
文件过大,重复文件过多,以及想提升速度的

分块上传:
在浏览器端将文件拆分成若干片段,一部分一部分将文件上传至服务器,最终上传完成以后,会在服务器上将文件合并

好处:
普通上传,只会发送一个请求,将文件以流式的方式传输至文件,有了分块上传后,就会同时发送好几个请求将文件上传至服务器。
速度上,理论来说,是比普通上传要快的

劣势:
如果你服务器比较拉跨,或者带宽有限,那这个功能还是算了吧,
因为开了分块上传以后,会频繁的向服务器发送请求,并且还要将某一片段的文件存储,势必会增加服务器的IO压力。

断点续传/秒传
简单来说就是如果上传崩了,下次在上传的时候会接着上次的进度传。比如我要上传一个10G文件,大概需要10分钟左右,那么我上传到6分钟的时候崩了,不管是网络崩了还是哪崩了,总之 想象一下,它就是崩了。
下次上传还要等10分钟,那就是总共得16分钟,而且这还要保证第二次要一定能传上去。
开了断点续传以后,第一次的时候在6分钟的时候崩了,那么第二次只需要上传剩下4分钟的文件就可以了。如果在剩下的4分钟中又崩了,那就继续在失败的地方接着上传。不会从头在上传。

秒传其实就是如果上传一个文件,发现服务器上已经有相同附件了,那么就不在上传这个文件,直接把进度拉满。这样的好处就是服务器上不会存在一摸一样的文件

好处:
可以接着上次未上传的进度接着上传,且是不区分客户端的,比如在A机器上传了50%,忽然机器摆烂了,那换到B机器上传的时候,也会从剩下的50%上传。
服务器不会存在相同文件,减少存储空间的浪费。

劣势:
在一段时间内,服务器上可能会存在一些垃圾文件,至于一段时间具体是多久还没想好,可能24小时,也可能48小时,具体得看到时候在代码里写多少了。
浏览器准备工作时间会变长,因为要用断点续传,第一,就是要能识别是同一个文件,现在普遍的做法就是计算整个文件的MD5值,这个过程会在浏览器端进行,具体计算时间长短,取决于硬件性能。不过我会使用浏览器的多线程机制来提升计算速度。

对接官方的云存储
有人在这可能会问,官方都支持了云存储功能,你这个插件还有什么用呢,其实如果研究过官方的云存储实现原理就能知道,上传文件的时候,并不是直接将云存储上传至云存储的,而是先将你的文件上传到服务器,服务器后台会将文件上传至云存储。
那到这,可能有的人已经明白了,不管你是否使用云存储功能,你都会将服务器上传至服务器,只要你把文件需要上传服务器,就会遇到上传速度,上传到一半失败的问题。
如果有可能的话,这个插件将对接官方的云存储,这样的话,你的文件最终是存在云上的,稳定还安全,也可以享受上传速度提升,断点续传和秒传的功能,岂不美滋滋。不过呢。。。。至于能不能实现,就看能不能对接上了,毕竟只是一个小小的插件,想和官方的功能对接,在没有API的情况下还是有一点点难度的。

最后
至于什么时候能做完,尽量让各位格友在9.0正式发布的时候上吧,不过也不一定。毕竟白天还要搬砖,而且天气热了,砖格外的烫手,只有下班了才能有时间搞搞。
大家有什么需求,尽管提,至于能不能做,以及要不要做,就再说吧。。。。

评分

参与人数 5满意度 +25 收起 理由
lh123 + 5
gczxxu + 5
hs68469023 + 5
lovert + 5
小兵一号 + 5

查看全部评分

37 个回复

倒序浏览
遇见未知的自己
银牌会员   /  发表于:2023-3-10 08:51:55
沙发

回复 使用道具 举报
小兵一号悬赏达人认证 活字格认证
中级会员   /  发表于:2023-3-10 09:01:45
板凳
虽然看懂了,但是没啥好的建议,只能给大佬加油打气
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2023-3-10 11:11:10
地板
帮顶。。
回复 使用道具 举报
tominson
银牌会员   /  发表于:2023-3-10 12:09:04
5#
office文件预览必须要有啊
回复 使用道具 举报
Edric.Li
中级会员   /  发表于:2023-3-10 12:12:02
6#
tominson 发表于 2023-3-10 12:09
office文件预览必须要有啊

如果要预览office就麻烦了
回复 使用道具 举报
妄想社成员活字格认证
银牌会员   /  发表于:2023-3-10 12:13:33
7#
文件夹上传
回复 使用道具 举报
妄想社成员活字格认证
银牌会员   /  发表于:2023-3-10 12:16:11
8#
拖拽上传,常见文本文件在线编辑预览(比如:js,html,css,txt,json等)?
回复 使用道具 举报
Edric.Li
中级会员   /  发表于:2023-3-10 12:18:35
9#
文件夹上传、拖拽上传剪贴板上传后续都会考虑
回复 使用道具 举报
Edric.Li
中级会员   /  发表于:2023-3-10 12:18:56
10#
妄想社成员 发表于 2023-3-10 12:16
拖拽上传,常见文本文件在线编辑预览(比如:js,html,css,txt,json等)?

这个点好,可以考虑上
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部