YOliCO

我用 AI 写了一个属于自己的网盘——柚舟YoLiARK

yolico
2026 年 05 月 06 日
44 次阅读
AI摘要:柚舟YoLiARK是一款基于MVC架构的个人网盘,采用PHP与SQLite实现后端,原生JavaScript构建前端。集成分片上传、内容去重、标签系统、最近访问记录及AI云助手等功能,满足轻量部署、简洁界面与个性化存储管理的需求。

为什么又要造一个网盘?

在聊这个项目之前,先说说我的"网盘使用史"。我可能是那种什么都想试一下的人——可道云用过,Nextcloud 部署过,Alist 挂载过各种存储,Owncloud 也折腾过一轮。每个都用过,每个也都有让我不太满意的地方。

我有一台 NAS,性能还不错,但因为安全方面的考虑,一直只敢把它放在局域网里用。出门在外想拿个文件,就只能干瞪眼,也不方便与朋友分享文件。所以我一直想要一个能部署在公网服务器上的、自己觉得顺手的小网盘。

去年下半年了解到 AI IDE (AI太好用了你知道吗)。作为一个没有代码基础的人,这简直是打开了新世界的大门。我开始想:既然 AI 能帮我写代码,那我能不能用 AI 做一个完全按照自己想法来的网盘?

说干就干。

柚舟YoLiARK是什么?

我给这个项目取名叫「柚舟YoLiARK」—— ARK舟,用来装载、运输货物。
网盘的核心就是装数据、传文件。它就是一个部署在服务器上的个人网盘,目前是单用户的,所有功能都是我自己需要什么就往上面加什么。

架构上比较朴实,就是标准的 MVC(模型-视图-控制器)分层结构。毕竟只是一个个人网盘,没必要搞得太复杂。后端用 PHP 写的,数据库用的是 SQLite——对,就是那种一个文件就能搞定的轻量数据库。不需要装 MySQL,不需要配一堆东西,主打一个简单省心。我的设计目标就是类似wordpress的零配置安装体验。

前端完全原生 JavaScript,没有用任何框架。倒不是因为我对原生有什么执念,主要是 AI 写原生 JS 我还能看懂个大概,加个框架进去我自己就真的完全看不懂了(笑)。

最开始是GLM5.1一句话生成的,当时完成品特别简陋,UI丑爆了不说,功能也是简单到可怜,后面用kimi2.6/2.5重构了前端,qwen3.5plus配合glm5.1重构了后端,想到啥加啥的思路,导致架构稀烂,后面拿kimi2.6重构了一次架构,但bug百出,后面再用deepseek彻底又迭代了一次架构,目前架构对于一个个人网盘来说基本算是符合需求了,性能没有太多浪费,

那些我想加进去的小巧思

虽说代码都是 AI 帮我写的,但我还是往里面塞了不少自己的想法。这里挑几个我觉得比较有意思的说一下:

前端UI
设计了一些不错的动画,按我认为好的UI设计就是好看,好用,想用,乐意用,所以花了很多时间打磨前端。

安全性
我不动安全什么的,所以基本上是边做边了解,总之常见的攻击漏洞应该是堵上了,不常见的ai也寻思不到的那我也没办法了,不过欢迎提出我不知道的漏洞,我觉得个人网盘安全还是蛮重要的。

文件锁定

有些重要的文件,放那儿怕手滑删掉。我就加了一个锁定功能,锁定的文件不能被删除也不能被重命名。不是什么复杂的功能,但真的很实用。

智能存储限额
一般的网盘都是固定给你多少 G。我设计了一个自动计算的功能——它会定期检查服务器的磁盘剩余空间,然后自动调整网盘的存储限额。比如服务器还剩 20G,它会自动把限额调到 19.5G,给系统预留一点空间。这样就不用担心哪天磁盘写爆了。

分片上传 + 内容去重
大文件上传做了分片处理,网络短暂断了可以续传(刷新页面就不行,浏览器选择器都重置了,就算设计支持也读不到文件了)。还有一个我自己觉得很好用的功能是:上传的时候会自动计算文件的 SHA256 哈希值,如果发现当前目录已经有内容完全相同的文件,就会提示你是不是重复了。这样就不会不小心传两份一样的文件上去。

标签系统
文件夹分类有时候不太够用,一个文件可能同时属于好几个类别。所以我给每个文件都加了标签功能,可以自定义打标签,我不知道出于什么想法设计的,总之对ai会友好一些(可能吧)。

最近访问
这个功能其实是从我自己用网盘的痛点上来的。经常刚打开过一个文件,转头就忘了它在哪个文件夹里。加了一个「最近访问」页面,自动记录你看过、下载过的文件,按时间倒序排列。最多保留 100 条,旧的自动清理。

AI 云助手
既然这个项目本身是 AI 帮我写的,那它怎么能没有一个 AI 助手呢?我在网盘里内置了一个聊天助手,支持对接 DeepSeek、智谱 GLM、通义千问、Ollama 本地模型等等。可以用自然语言让它帮你搜索文件、创建分享链接、查看存储空间。而且对话历史会保存在本地,最多保留最近的 10 条。

分享功能
分享链接支持设置密码、过期时间、最大下载次数。还记录每一个分享链接的下载数据。

操作日志
所有的文件操作——上传、下载、删除、分享、登录——都有详细的日志记录。可以按类别、级别、日期筛选,还能导出。虽然目前只有我自己在用,但万一哪天有朋友一起用了呢?其实是检查是不是有人攻破了(虽然没啥用)

担心是在重复造轮子?

说实话,挺担心的。

前面说过,我用过可道云、Nextcloud、Alist、Owncloud。这些每一个都比我这个「柚舟」功能多得多,生态也完善得多。Nextcloud 有几百个插件,Alist 能挂载几十种存储,可道云的在线编辑体验也很好。和他们比起来,我这个网盘真的太简陋了。

但后来我想通了一件事:我做的不是一个要和它们竞争的产品,我做的是一个刚好适合我自己用的工具。

可道云功能太多,界面对我来说有点复杂。Nextcloud 太重了,部署一次要折腾好久。Alist 是个很棒的项目,但它更偏向于「挂载展示」,而不是我想要的「个人存储管理」。Owncloud 和 Nextcloud 类似,也是功能强大但有点臃肿。

我想要的东西其实很简单:一个轻量的、界面干净的、部署简单的、每一个功能都是我自己需要的网盘。没有什么多余的东西,也没有什么"这个功能到底在哪"的困惑。

接下来想做什么

目前的版本已经能满足我的基本需求了,但还有一些想法在脑子里:

  • 支持 PWA:可以添加到主屏幕,像原生应用一样使用。Service Worker 做了静态资源的缓存,离线也能打开之前加载过的页面。
  • 更丰富的预览能力 :现在支持图片、视频、音频、PDF、Office 文档的在线预览,但体验还能更好。
  • 插件库:支持自行安装插件与官方插件库,也可以添加第三方插件库源(目前折腾起来比较麻烦,不过大概率是未来更新的方向)
    总之,不急,想到什么加什么。反正是自己用的,没有 deadline(笑)。

最后

项目已经在 GitHub 开源了(还没有),虽然代码大部分是 AI 写的,但每一个功能的设计和取舍都是我自己琢磨的。如果你也在找一个轻量的个人网盘,或者想看看「一个不会写代码的人用 AI 能做到什么程度」,欢迎来看看。

也欢迎大家提建议和交流,毕竟一个人的想法总是有限的嘛~

临时补充

最近看到《没学过代码就不能开发吗》真是给我这种主打氛围感编程的低雅人士也给笑嘻了,别的不说,她是怎么站在那里演讲的我是真没理解

作者:yolico

这个人很懒,什么都没写~