1. 众多免费的个人网盘和网页版文件管理软件:
Filebrowser:官网 https://filebrowser.org/ , 没有体验网站,不过不用安装,直接运行,马上就能在自己电脑上看到效果。在github上有源码(国内访问慢,多试几次 https://github.com/filebrowser/filebrowser)。
Nextcloud: 体验网站:https://try.nextcloud.com/,点take me there. 会自动生成用户名和密码,自动登录。如果密码为空,重新进一遍。服务器在国外。github上有源码。
Filerun:体验网站:https://demo.filerun.co/?username=admin&password=admin,服务器在国外。
可道云:体验网站:http://demo.kodcloud.com/#user/login, 自动生成用户名和密码。github上有源码。
蓝眼网盘:体验网站:https://tank.eyeblue.cn/user/login,体验账号: demo 密码:123456)。github上有源码。
**photoprism: **体验网站:https://demo.photoprism.org/, 不需密码。
hfs, chfs等等:chfs官网:http://iscute.cn/chfs,太简易了。没体验网站。
试用比较了好久,最后发现还是filebrowser最满意。
Filebrowser的优点:
1. 不用安装,直接运行。
只要下载一个单独的filebrowser文件(windows下是filebrowser.exe) 就能在各个平台直接运行(windows下要用cmd命令行加参数运行)。filebrowser是用谷歌的go语言写的服务器程序,运行速度仅次于c语言。运行起来小巧,轻便,速度快。不用安装直接运行。
而蓝眼云盘也是go写的后台,有同样优势,但需要安装数据库。其他软件都需要先搭建apache等网站服务器,再安装数据库,php等(就是LNMP环境)。太复杂,新手不建议。不过,简易办法是先安装docker,然后拉取镜像,就能直接运行了,这是最简单的安装方法了。
2. 要求配置低,运行流畅。
我看过有用玩客云,n1等搭建可道云的,甚至还有nextcloud的,光安装Lnmp环境就已经让系统肿起来了,运行起来当然卡卡卡。cpu是arm, arm v5, arm v7等架构的低性能服务器(包括路由器,矿渣产品等)还是老老实实用filebrowser吧。可能还需要加点虚拟内存。1g内存会运行很流畅稳定。很多第三方系统都自动集成了filebrowser,不过版本都比较老。
3. 直接操作硬盘,保持硬盘原本目录结构:
这点很重要,把filebrowser放在任何文件夹直接运行,都能访问到系统根目录,并可以实时浏览,修改硬盘上的文件,所见即所得。
其他的软件很多需要搭建网站服务器,只能访问到网站服务所在的目录,要访问的文件都要移动到服务器所在的根目录,那整个硬盘的目录结构就都变了。而且通过数据库操作,会使网页上显示的内容和硬盘实际存储的内容不一致,你以为你从硬盘上删除或上传了一个文件,到实际硬盘里查看,其实没变。它是通过数据库操作的,很可能放在网站的目录里了。这个bug太傻了。
4. 访问速度快,用命令行可以关掉压缩图片功能。
很多其他软件都会在你浏览硬盘上的图片时,先压缩生成各种尺寸的缩略图,而且还不能关掉这个功能,这对于低配置的服务器来说简直就是灾难。记得用小睿私人云自带的系统,往里面上传了2000张图片,它哐当咣当压缩了1个多小时还没弄好。nextcloud也有这个bug,比如浏览5000张图片的文件夹时会直接卡死,低配置的服务器根本干不了这活儿。可道云也一样,能在pc端关闭缩略图功能,但在手机访问时还是会先压缩再显示缩略图,访问时直接卡死。
而filebrowser则是从图片的exif里直接抽取缩略图,直接显示,访问5000张图片的文件夹也会2秒钟就打开,浏览起来很流畅。
不足:
免费的开源项目,有些功能还不够完善,比如不支持手机滑屏切换图片(只能点击按钮切换),图片切换没有过渡动画,前后图片没有预加载功能,浏览图片后返回目录页时不能回到原位置(每次都回到页首),文本文件编辑器功能太简单,没有用虚拟列表(访问1万个图片的文件夹时内存占用会很大) 等等。
我用filebrowser一年多了,很稳定。最近一个月心血来潮,给filebrowser做了好多修改,也提交通过了几个,但审核速度特慢。毕竟是两三年的开源项目了,owner更新不积极了。我把我修改的源码和可执行文件也放到了github上和百度网盘里,大家不喜欢原版可以用我的改版。我还会写一个在windows下编译filebrowser的步骤,大家可以把源码改着玩,自己编译,非常有意思。后端是go语言写的,前端是vue (html, css, javasript) 写的。
Filebrowser安装和使用方法:
官网地址:https://github.com/filebrowser/filebrowser/releases,
进到filebrowser.exe所在目录,然后设置一下参数:
初始化内置数据库文件filebrowser.db,它会在当前目录下生成一个数据库文件filebrowser.db
.\filebrowser -d filebrowser.db config init
设置管理员用户名和密码(用户名:kkk,密码:123456,可以自己修改)
.\filebrowser -d filebrowser.db users add kkk 123456 --perm.admin
设置访问地址为0.0.0.0(这个不能变),这样就能在外网或者192.168.x.x(你的内网地址)访问了。注意,默认的127.0.0.1有时不能访问,改成这个就好了。
.\filebrowser -d filebrowser.db config set --address 0.0.0.0
修改访问端口号为1234, 就能用192.168.x.x:1234来访问了。注意不能用默认的8080端口,移动电信联通都把这个端口封了,从外面访问不了。
.\filebrowser -d filebrowser.db config set --port 1234
设置根目录为电脑的d盘,根据自己需要改。
.\filebrowser -d filebrowser.db config set --root d:/
运行程序:
.\filebrowser.exe -d .\filebrowser.db --disable-preview-resize --disable-type-detection-by-header --cache-dir .\cache
这几个参数的说明:.\ 表示当前目录。
-d .\filebrowser.db 表示数据库文件是当前目录的filebrowser.db
--disable-preview-resize 表示禁止压缩图片,低端服务器最好关上,不然会很卡很卡。普通服务器也最好关上,会生成好多压缩后的图片文件,也就在访问时省一点流量。如果嫌原图片太大,可以自己提前用windows系统的图片批量压缩工具处理一下,比访问时让服务器压缩要好。
--disable-type-detection-by-header 这个一定要关,加快列表显示速度的,5000个文件的文件夹只要2秒就能显示出来,如果不关,要30秒。不知道为啥不把它设为默认关闭。好多人不知道设这个。
--cache-dir .\cache 设置缓存文件夹为当前目录的cache文件夹(没有的话自己会建一个),最好加这个,放置图片缩略图的,第二次访问同目录时,图片缩略图显示会快很多。
然后就能用电脑或手机浏览器访问
在linux下设置filebrowser 的命令(比如filebrowser放在根目录的filebrowser文件夹里了):就多一步授权:
cd /filebrowser
chmod 755 filebrowser
./filebrowser -d filebrowser.db config init
./filebrowser -d filebrowser.db config set --address 0.0.0.0
./filebrowser -d filebrowser.db config set --port 1234
./filebrowser -d filebrowser.db users add kkk 123456 --perm.admin
设置根目录为linux系统根目录,这样你在filebrowser网页里所有文件都能访问到了,不光是硬盘,还有你的系统盘。
./filebrowser -d filebrowser.db config set --root /
运行:
/filebrowser/filebrowser -d /filebrowser/filebrowser.db --disable-preview-resize --disable-type-detection-by-header --cache-dir /filebrowser/cache
测试成功后,可以设为开机自启动:
Ubuntu的方法是:在/etc/systemd/system 文件夹下建一个filebrowser.service文件,里面内容是:
位置:/etc/systemd/system/filebrowser.service 文件,内容如下,里面的路径都要改对。
[Unit]
Description=Filebrowser
After=network-online.target
[Service]
User=root
Group=root
服务类型
Type=simple
进程退出立即重启,这个一定要加。这样systemctl就能自动进程守护了,filebrowser崩溃后会1秒钟起来。
Restart=always
ExecStart=/filebrowser/filebrowser -d /filebrowser/filebrowser.db --disable-preview-resize --disable-type-detection-by-header --cache-dir /filebrowser/cache
[Install]
当系统以多用户方式启动时,这个服务需要被自动运行
WantedBy=multi-user.target
然后重启系统就可以访问了:
reboot