JS网盘有哪些优点?为什么大家都选择JS网盘?

吉云

好嘞,各位老铁,今天跟大家唠唠我最近搞的这个“js网盘”项目,纯粹是自己兴趣使然,想整个能方便自己用的玩意儿。

我琢磨着现在网盘那么多,为啥还要自己搞?后来一想,别人的网盘要么速度慢,要么各种限制,用起来真不爽。干脆自己动手,丰衣足食!

我得定个目标,这个js网盘得能干最基本的就是文件上传、下载、删除、创建文件夹这些功能,还得有个用户系统,不然谁都能瞎搞。

JS网盘有哪些优点?为什么大家都选择JS网盘?

技术选型上,前端肯定是用我最熟练的JavaScript,后端嘛考虑到快速上手,就选*,数据库用MySQL。为啥用MySQL?因为我之前用过,比较顺手。

环境搭好之后,就开始撸代码。先从后端开始,搭个简单的API接口,用来处理文件上传、下载这些请求。用的Express框架,这玩意儿挺方便,几行代码就能搞定一个接口。

文件上传这块,我一开始直接用的`multer`这个中间件,结果发现上传大文件的时候不太稳定,经常卡死。后来改成`formidable`,这个库对大文件支持更还能显示上传进度,用户体验立马提升不少。

前端这块,我用*,因为我对这个框架比较熟。整个界面模仿常见的网盘,左边是文件目录树,右边是文件列表。

在文件列表这块,我加排序功能,可以按文件名、大小、修改时间排序。这个功能虽然简单,但是用起来很方便。

文件下载这块,直接用``标签的`download`属性,简单粗暴,但是好用。

JS网盘有哪些优点?为什么大家都选择JS网盘?

文件删除和创建文件夹,就直接调用后端的API,然后刷新页面就行。

用户系统这块,我做个简单的注册、登录功能,用的`bcrypt`来加密密码,保证用户的密码安全。

在开发过程中,遇到不少坑。比如,跨域问题,因为前端和后端的域名不一样,浏览器会阻止跨域请求。解决方法也很简单,在后端设置`Access-Control-Allow-Origin`头就行。

还有一个坑是文件权限问题,上传的文件默认权限是644,用户只能读,不能写。解决方法是用`chmod`命令修改文件权限。

搞完这些,基本功能就差不多。然后,我又加一些额外的功能,比如:

文件重命名:这个功能很实用,可以方便地修改文件名。

JS网盘有哪些优点?为什么大家都选择JS网盘?

文件复制:有时候需要复制一份文件,这个功能就派上用场。

在线预览:支持预览一些常见的文档格式,比如txt、pdf、图片等。

在线预览这块,我用`*`和`viewerjs`这两个库,可以方便地在浏览器中预览pdf文件和图片。

我把整个项目部署到我的服务器上,用Nginx做反向代理,整个过程还算顺利。

这回js网盘的实践,让我学到很多东西。不仅巩固我的前端和后端技术,还让我对文件上传、下载、权限管理这些细节有更深入的解。虽然这个网盘还比较简陋,但是对我来说,已经足够用。以后有时间,我还会继续完善它,让它变得更好用。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]