通用技术 可上传、下载、预览的 HTTP 文件服务器 ServeFS

codeskyblue · 2025年02月10日 · 最后由 大海 回复于 2025年02月11日 · 2028 次阅读

背景

最近正好需要一个可以上传、下载、预览但部署又简单的文件服务器,网上找了一下也没找到特别合适的。所以自己写一个。

项目地址

https://github.com/codeskyblue/servefs

这个项目的大部分代码实际上是用 AI 编辑器 windsurf 写的,虽然有 AI 帮忙还是写了好几天。

使用的是 python fastapi 框架,利用了 asyncio 技术,可以提供高速稳定的下载体验。

效果演示



致谢

Windsurf

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

我正好有个需求要实现:我想部署在公司内部,但是提供给非本公司的外部同事(下游客户和第三方供应商)访问并下载文件进行打印。
有几个问题请教:
1、上传的文件都是存在公司内部的局域网的吗?
2、如果要进行外部客户跨域访问,岂不是要搞一个外部云服务?
3、外部客户只能查看和下载文件,不可以进行删除,现在是否支持啊?
4、我刚试了下,发现服务器上展示了我本机所有的文件夹及文件,能否仅展示空数据呢?并且只能是我自己上传的文件才会展示出来?

哈哈,权限这个后面会弄弄,毕竟我就写了两天。

  1. 你部署在哪里就保存在哪里
  2. 想让用户外部访问有很多方法,最简单一点就是使用 ssh 建立个隧道到外网的服务器。
  3. 后面有时间了我再弄权限吧,权限这个东西确实很必要,不让乱上传就麻烦了
  4. 这个真的没太理解。啥空数据。自己上传到专门的文件夹是不是也可以

PS: 我好久没上 testerhome 发文章了,竟然这么快就看到回复了

如果要 预览 excel ,word ,是不是还要加东西

mark,收藏下

codeskyblue 回复

第四点我解释下,我在自己本机部署了,然后发现文件服务器上面把我当前 C 盘下的所有文件夹和文件都展示出来了。我是工作电脑,只有一个 C 盘,所以想了解下,如何让文件服务器不展示当前 C 盘的所有目录信息,比如部署后,希望的结果是,打开文件服务器,应该里面啥都没有,是一个空的目录这种。

大佬,python 版本要求多少?pip install servefs 安装后,找不到 servefs,python3.9

蓝蓝 回复

终端直接运行

蓝蓝 回复

@ 蓝蓝 最低 3.8 就可以了,你这个应该是配置了 pip 镜像,镜像还没同步。
@ 大海 我整了整把 basicAuth 加上去了,没登陆的可以下载,登录的可以上传。

功能大部分都是我让 windsurf 干的,虽然有时这家伙有点沟通困难症。有时还要自己上手。

codeskyblue 回复

点赞,执行力真强

有什么办法不让服务器扫描我这么多文件夹吗?如果 HOME 里面默认啥都没有就好了。

10楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册