这篇文章给大家介绍一款github上的免费开源软件 Filebrowser。(13.4k stars,万星软件)
Filebrowser是一款配置要求低、运行速度快、页面友好的个人网盘和网页版文件管理器。
这个是做什么用的呢?大家用过百度网盘吧?相当于百度给了你一块硬盘,可以在任何地方上传下载文件、浏览图片、在线观看影视、在线听歌、在线编辑文件,给朋友分享文件等等。你可以用浏览器直接访问这块硬盘,也可以用客户端访问。这块硬盘就和你家自己的硬盘一样,只不过是放在百度的服务器上了。
百度网盘的不足:
1. 由于运营成本压力。百度网盘免费使用会限速。下载限速100K,太慢了。在线观看视频模糊,不充值它就会先把视频压缩成低码流的再传过来,很影响观看效果 (百度也不嫌麻烦)。
2. 别人在打开你分享的文件时,稍微大一点的文件就需要安装它的客户端,非常不方便。下载你分享的文件时速度当然也很慢。
3. 限制资源,有些有版权的内容会自动禁止分享。比如奇葩说,搜遍全网都没有了,因为百度网盘不让分享出来。
4. 你想要在外面浏览、编辑和分享你家硬盘里的文件,必须先上传到百度网盘。没有私密性了,也麻烦。
上面这些不足使百度网盘用起来很不爽。
大家家里的宽带上传速度现在都有30兆甚至更高了,又是包月的,不充分利用起来多浪费。很多人就想着如果能在外面任何地方访问家里的硬盘内容就好了,就和访问百度网盘一样。30兆的上传速度对于从外面访问硬盘、在线播放视频都足够足够了。
所以,各种方案就应运而生了。当然,必须面对的是硬件和软件的选择。
众多硬件软件集成的NAS产品:群晖、铁威马、联想nas、西数myCloud、 HIKVISION/海康威视等。这些产品的优点是专业,界面漂亮。缺点:
a. 贵,你要同时买硬件啊,相对于那配置,价格虚高了。记得算下来最划算的感觉是西数的myCloud了只比单买硬盘贵一点点吧。
b. 软件不成熟,各产品情况不一样,各式各样的bug。不过通用的毛病都是会自行压缩图片和重压视频。相对那配置,这活儿太不适合它们做了。就连群晖卖5000多的机子配置都不咋地。它们总想着根据你从外面访问时的速度,推给你一个合适的码流,省流量。可现在宽带都普及了,直接把原版文件推给用户就好了。4g手机看普通视频都足够流畅了。而且,视频格式它们还认不全,有些无法播放。我测试过群晖的5000多的机子,还有西数mycloud,记得在外面访问播放视频时拖拽进度条卡,就劝退了。同样的视频在filebrowser里看拖拽进度条时可一点不卡。
c. 会把硬盘内容弄得乱七八糟。很多产品在存完文件后,硬盘里的内容只能在它的系统里访问,把硬盘拿到电脑上看时里面的目录结构乱起八糟,没法用了。
在购买产品时,很多厂家或商家都有自建的服务器,可以找商家要试用帐号,看看访问他们的服务器时能不能满足需求。
用自己的硬件设备,配合合适的免费软件:
硬件选择:
这种个人网盘如果只负责上传下载的话,对性能要求非常低。可以选择的很多,比如windows电脑,苹果电脑,小型linux服务器(tb上300多块钱的都挺好的了),树莓派等,旧手机(没研究过),带usb口的能刷第三方系统的路由器,甚至好多价格便宜的矿难产品(比如迅雷的35块钱的玩客云;斐讯的n1,k3路由器;蜗牛云;小睿私人云等等,可以刷上ambian,OPENWRT等简易linux系统,甚至可以流畅运行精简版ubuntu)。
做服务器的硬件可以根据cpu来划分,性能上:amd64 > arm64 > arm,内存要1g以上(不够的话要自己设置虚拟内存)。如果自己新买,最好买amd64,2g以上内存的。当然,性能越高,越耗电。这个东西是24小时开机(放文件的硬盘会自动休眠)。所以一定要省电。我用的是小睿私人云(arm64的,刷的精简版ubuntu),开机日常耗电是4瓦,一年才20块钱电费(电费简易算法:一度电是0.49元,一瓦一年的耗电是4.29元。) 比光猫或路由器都省电,运行速度还快,很不错。如果用电脑,日常耗电80瓦左右(不开显示器)。以前用k3,性能还不如小睿私人云,耗电是16w,不过路由器的电费就省了,需要设置500兆虚拟内存,不然偶尔会挂掉重启。
软件选择:
1. 最简单的:传统的 ftp, sftp(就是ssh), samba, webdav等服务器软件。
缺点:
ftp: 自从chrome不支持ftp,sftp以来,没法用浏览器访问ftp,这就很麻烦了。分享个文件给别人,还要让别人先安装ftp客户端,再配置ftp链接,大部分人都不会用的。不过,自己用还是很方便的。访问这些服务器时,windows客户端可以用SFTP Drive v2等,安卓手机客户端可以用MiXplorer(xda大神作品,神器,支持协议超多),EX文件浏览器等。ftp推荐在windows电脑上用小皮面板一键启动,比在windows上自己配置方便太多了。另外,有一款可以直接用浏览器访问ftp的软件 https://www.net2ftp.com/,貌似不能在线播放视频和浏览图片,界面也丑。
samba: 不支持浏览器直接访问,用客户端软件从外网访问效率特低,播放视频拖拽进度条时会卡,换成ftp就马上好了。
webdav:可以用浏览器直接访问,但界面很丑,功能不全。也可以用客户端访问,速度不错。
2. 众多免费的个人网盘和网页版文件管理软件,我测试过的包括:
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内存会运行很流畅稳定。
3. 直接操作硬盘,保持硬盘原本目录结构:
这点很重要,把filebrowser放在任何文件夹直接运行,都能访问到系统根目录,并可以实时浏览,修改硬盘上的文件,所见即所得。
其他的软件很多需要搭建网站服务器,只能访问到网站指定的某个目录,要访问的文件都要移动到指定的目录,那整个硬盘的目录结构就都变了。而且通过数据库操作,会使网页上显示的内容和硬盘实际存储的内容不一致,你以为你从硬盘上删除或上传了一个文件,到实际硬盘里查看,其实没变。它是通过数据库操作的,很可能放在硬盘的某个目录里了。这个bug太傻了。
4. 访问速度快,用命令行可以关掉压缩图片功能。
很多其他软件都会在你浏览硬盘上的图片时,先压缩生成不同尺寸的缩略图,而且还不能关掉这个功能,这对于低配置的服务器来说简直就是灾难。记得用小睿私人云自带的系统,往里面上传了2000张图片,它哐当咣当压缩了1个多小时还没弄好。nextcloud也有这个bug,比如浏览5000张图片的文件夹时会直接卡死,低配置的服务器根本干不了这活儿。可道云也一样,能在pc端关闭缩略图功能,但在手机访问时还是会先压缩再显示缩略图,访问时直接卡死。
而filebrowser则是从图片的exif里直接抽取缩略图,直接显示,访问5000张图片的文件夹也会2秒钟就打开,缩略图显示也很流畅。
不足:
免费的开源项目,有些功能还不够完善,比如不支持手机滑屏切换图片(只能点击按钮切换),图片切换没有过渡动画,前后图片没有预加载功能,浏览图片后返回目录页时不能回到原位置(每次都回到页首),文本文件编辑器功能太简单,没有用虚拟列表(访问1万个图片的文件夹时内存占用会很大) 等等。
我用filebrowser一年多了,很稳定。最近一个月心血来潮,给filebrowser做了好多修改,也提交并通过了几个,但审核速度特慢。毕竟是好几年的开源项目了,owner更新不积极了。我把我修改的源码和可执行文件也放到了百度网盘里,大家不喜欢原版可以试试我的改版。我还会写一个在windows下编译filebrowser的步骤,大家可以把源码改着玩,自己编译,非常有意思。后端是go语言写的,前端是vue (html, css, javasript) 写的,学点基础知识能改了,比如先改个css,编译一下,看看效果,马上就上瘾了,我就是这么入坑的,然后就越改越多。
Filebrowser安装和使用方法:
可以先在windows电脑上试一下,很简单。
先从官网或我的百度网盘里下载filebrowser这个文件(windows下是filebrowser.exe文件):
百度网盘:里面还有我的修改版和修改的源码,编译步骤说明等:
链接: https://pan.baidu.com/s/1CYTExm-94vwVdxhQz2oHVA 提取码: 5ebn
官网(可能访问不了,多试几次)地址:https://github.com/filebrowser/filebrowser/releases,
官网最上面是最新版本,下载assets里的 windows-amd64-filebrowser.zip,windows电脑不论intel或amd的cpu都下这个 amd64的。
下载回来解压缩,会得到4个文件,其中filebrowser.exe最主要,其他都是版权声明、使用说明等,可以删掉(如果分发,最好带上这些版权声明)。
把filebrowser.exe随便放到一个文件夹里,比如d 盘 filebrowser文件夹,打开命令提示符窗口(cmd)
进到filebrowser.exe所在目录
d:\
cd filebrowser
然后设置一下参数:
初始化内置数据库文件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来访问了。注意不能用默认的80或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文件夹(没有的话会自动建一个),最好加这个,放置图片缩略图的,第二次访问同目录时,图片缩略图显示会快很多,而且这个文件夹也不会太大。
然后就能用电脑或手机浏览器访问:
192.168.x.x:1234,
或你外网的url:1234。
如果从内网能访问,外网访问不了,在控制面板--windows defender防火墙--允许应用或功能通过windows defender防火墙--把filebrowser 的专用和公用的钩都打上。
关于从外面访问,很简单。
你先要有个公网ip地址,这个可以找运营商要,打个电话让他们远程改,过几分钟重启一下光猫就好了。免费的。
然后需要一个域名,以前我都是申请阿里云啊花生壳啊啥的,要传身份证等等,太麻烦了,开通很慢。后来发现如果用tp-link路由器(或华硕路由器等),用app可以申请域名,几秒钟搞定。
然后在路由器里设置端口转发,或者干脆直接把dmz打开,目标ip就是你的电脑ip地址。
filebrowser 提供了十几种版本,可以根据你的cpu和系统类型选择,比如装的ubuntu等linux系统,cpu是arm64架构,就选linux-arm64-filebrowser.tar.gz。
在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
好了,就写到这吧。
开源weboffice
评分
参与人数 3恩山币 +3
收起
理由
1079
+ 1
几亿网民,我们俩竟然神奇的在恩山相遇了! ...
大HU人家
+ 1
找了很多没找到怎么编译,在这找到了,感谢
cnstep
+ 1
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
查看全部评分