FileGator 介绍与选型指南

FileGator(filegator/filegator)多用户 PHP Web 文件管理器的定位、核心架构(8 大可插拔服务域)、功能特性、快速开始与 copyparty/Gokapi/FileRise/Chibisafe 量化选型对比,全部信息溯源官方仓库(查询日期 2026-10-30)。

FileGatorFileGator文件分享2026/10/30

FileGator 介绍与选型指南

目标:面向需要在自有服务器上部署「多用户 Web 文件管理器」的读者,讲清 FileGator 的定位、核心架构、功能特性、快速开始路径与同类选型对比。本文为认知篇,全部信息均溯源官方仓库与官方文档(来源与查询日期随文标注,统一查询日期 2026-10-30),不包含本地实测结论;部署与接口的逐条实测见本专栏后续篇章。

一、环境信息

本文溯源所用信息源与版本基线如下(查询日期 2026-10-30):

  • 评估对象:FileGator(GitHub 仓库 filegator/filegator)
  • 最新稳定版:v7.16.8(GitHub Releases 页 releases/latest 于 2026-10-30 重定向至 v7.16.8;仓库另有 v8.0.0-beta.1 预发布版,2026-10-27 推送,因属 beta 不作为稳定基线)
  • 社区活跃度:GitHub 星数 3.1k(shields.io stars 徽章实查,2026-10-30);仓库持续维护中(shields.io last-commit 徽章显示最后一次提交为「last tuesday」,即 2026-10-27 前后)
  • Docker 镜像:filegator/filegator(Docker Hub 官方仓库,latest 标签于 2026-10-21 更新且与 v7.16.8 同日发布;累计拉取量 908k,shields.io docker-pulls 徽章实查)
  • 技术栈:PHP 8.3 + Vue.js 前端 + Symfony 组件(路由/会话/CSRF)+ League Flysystem 存储抽象(来源:官方仓库 README 与 Dockerfile,2026-10-30)
  • 许可证:MIT(来源:官方仓库 README)

二、软件概述

FileGator 是一个免费开源的多用户 PHP Web 文件管理器(来源:官方 README 首句「FileGator is a free, open-source, self-hosted web application for managing files and folders」,查询日期 2026-10-30)。它把一个服务器的某个目录(本地磁盘)或远端存储(S3/FTP 等)变成一个可通过浏览器访问的文件工作台:登录后可以上传、下载、压缩、解压、复制、移动、重命名、在线编辑与删除文件,并按用户分配不同的主目录(homedir)与权限(read/write/upload/download/zip/chmod 等)。

与「文件分享服务」(如 Chibisafe、Gokapi 这类以「生成外链给别人下载」为核心的产品)不同,FileGator 的核心动词是**「管理」**:它没有匿名的公开分享链接机制,所有下载动作都必须在登录会话内发生。这决定了它的典型用户是「团队/家庭内部文件工作台」「服务器文件的 Web 化管理入口」,而不是「对外发文件」。

项目由 Milos Stojanovic(alcalbg)发起并维护,采用 MIT 许可,允许商业使用。

💡 技术拓展:「Web 文件管理器」与「文件分享服务」是自托管文件赛道上两个容易混淆的子类。前者的关键词是会话内管理(多用户、权限、目录树操作),代表产品除 FileGator 外还有 Tiny File Manager、FileRun 等;后者的关键词是外链分发(匿名上传页、短链、过期时间),代表产品是 Chibisafe、Gokapi、PicoShare。选型第一步应先回答「文件给谁用」:给内部团队长期管理选前者,给外部人员临时收发选后者。FileGator 属于前者,且是前者中「多用户 + 存储适配器」能力最完整的一档。

三、核心架构

FileGator 采用单体 PHP 应用 + 服务容器(DI Container)的架构,按官方仓库源码结构(backend/Services 目录,2026-10-30 查询)可拆为 8 个可插拔服务域,均通过 configuration.php 以「接口 → 适配器 → 配置」三元组方式装配:

服务域(接口)默认适配器职责
Storage(Filesystem)Flysystem Local统一存储抽象:本地目录/FTP/S3/Dropbox 等均通过 League Flysystem 适配器接入
AuthJsonFile认证与用户库:默认 JSON 文件存用户,可换 LDAP/数据库适配器
Router内置 Router前端路由分发:以 ?r=/端点 的查询参数形态承载 JSON API
SessionSymfony NativeSession会话存储(PHP 原生文件会话,SameSite=Lax + HttpOnly Cookie)
TmpfsTmpfs分块上传临时区与打包临时区(带垃圾回收,默认 2 天过期)
ArchiverZipArchiver压缩/解压(ZipArchive)
SecuritySecurityCSRF 防护、IP 黑白名单
LoggerMonoLogger日志(Monolog,写 private/logs/app.log)

这个「一切皆适配器」的设计是 FileGator 区别于多数同类(如 Tiny File Manager 这类单文件脚本)的最大架构差异:存储与认证均可替换。例如把 Storage 适配器从 Local 换成 S3 后,整个文件树的读写、上传、压缩都无缝落在对象存储上(官方 README 列出的可选适配器:Local, FTP, Amazon S3, Dropbox, DO Spaces, Azure Blob 及其他 Flysystem 生态适配器,来源官方 README,2026-10-30)。

前端是编译后的 Vue.js 单页应用(构建产物在 dist/ 目录),与 PHP 后端仅通过 JSON API 通信;API 带统一的前置安全层——所有 GET 请求在响应头下发 X-CSRF-Token,所有 POST 请求必须回带该头,否则请求被直接终止。

四、功能特性

按官方 README 列举并对照仓库源码(2026-10-30):

  1. 全量文件操作:复制、移动、重命名、删除、创建文件/目录、在线编辑(可编辑扩展名可配)、预览。
  2. 上传体验:拖拽上传、进度条、暂停/续传;上传分块(默认 1MB/块)且并发(默认 3 路),因此可突破服务器单请求体积限制传大文件。
  3. 压缩与批量下载:多选文件/目录打包 zip 下载(batchdownload),或 zip/unzip 到指定目录。
  4. 多用户与权限:admin/user/guest 三角色;每用户独立 homedir(可隔离到子目录甚至不同存储适配器实例);7 项细粒度权限(read/write/upload/download/batchdownload/zip/chmod)按用户授予。
  5. 多种认证后端:默认 JSON 文件,官方同时内置 LDAP 与数据库(mysqli)适配器(Dockerfile 中显式编译 ldap/mysqli 扩展)。
  6. 多种存储后端:Flysystem 生态全量适配器(Local/S3/FTP/Dropbox/Azure Blob 等)。
  7. 安全机制:登录失败锁定(默认 5 次失败锁 15 秒)、CSRF 防护、IP 黑白名单、private 目录 .htaccess 拒绝直接访问。
  8. 界面配置:应用名/Logo/语言/日期格式/分页档位/可编辑扩展名/归档默认名等均可在配置的 frontend_config 段调整。

明确不具备的能力(选型时需注意):无匿名公开分享外链、无文件版本历史、无在线办公文档协作、无断点续传的断电持久化之外的校验和机制、不含全文搜索(仅按文件名搜索)。

五、快速开始(最小可用示例)

以下为官方 README 给出的单命令启动方式(来源:官方仓库 README「Quick start」节,查询日期 2026-10-30,未在本文复测;生产部署与验证过程见本专栏《FileGator v7.16.8 Docker Compose 部署指南》):

docker run --rm -p 8080:8080 filegator/filegator

启动后访问 http://127.0.0.1:8080,官方 README 明确默认管理员账号为 admin / admin123(README 原文「login as admin/admin123」,2026-10-30 实查)。首次登录后应立即修改密码。

目录约定(来源:官方 Dockerfile,2026-10-30):

  • /var/www/filegator/repository:默认存储根(所有文件落在这一目录及其子目录)
  • /var/www/filegator/private:用户库 users.json、日志、会话与上传临时区(该目录内容不应公开)
  • 容器内监听 8080(Apache + PHP 8.3),以 www-data 用户运行

六、适用场景与限制

适用场景:

  1. 团队内部文件工作台:为每个成员开账号、分 homedir 与权限,替代散落在各处的 SFTP 账号。
  2. 服务器文件的 Web 化管理入口:管理员在浏览器里完成日常的文件巡查、编辑、打包、清理,替代 SSH+命令行。
  3. 对象存储的「人味」界面:把 S3 桶挂成 Storage 适配器后,给不熟悉 AWS 控制台的成员一个图形化入口。
  4. 个人私有云盘的底座:结合 LDAP/数据库认证可并入已有账号体系。

限制与前置认知(来源:官方 README「Limitations/FAQ」与源码,2026-10-30):

  • 不支持符号链接(受 Flysystem Local 适配器约束,README 明确说明)。
  • 无公开分享外链——对外发文件场景应选分享型产品(见下节对比)。
  • 默认配置上传上限 100MB(frontend_config.upload_max_size,可调);分块上传依赖 PHP 会话与临时区,多实例水平扩展时需共享会话与 tmpfs。
  • 官方镜像基于 Apache + mod_php,单机形态;未见官方 Kubernetes Chart(Docker Hub 与官方仓库 2026-10-30 实查)。
  • PHP 会话驱动默认落在容器本地文件系统,重启容器会话失效(数据不受影响,均在挂载卷内)。

七、同类选型对比

把 FileGator 与同赛道四个常见选项放在一起对比(星数均为 shields.io 徽章 2026-10-30 实查值;「平台专栏」列仅对本站已有专栏的组件给出可点击链接,无专栏的不硬链):

维度FileGatorcopypartyGokapiFileRiseChibisafe
GitHub 星数(2026-10-30)3.1k47k2.9k1k2.8k
技术栈PHP 8.3 + VuePython 单文件GoPHP + VueNode.js(Next.js + Fastify)
类型定位多用户 Web 文件管理器多协议媒体/文件服务器(WebDAV/FTP/SMB/HTTP)一次性外链分享(Lightweight Dropbox 替代)Web 文件管理器 + 上传/分享自托管文件上传/分享服务
多用户/权限强(3 角色 × 7 权限 × homedir)中(账户+权限目录)管理员为主,少用户模型中(用户 + 目录权限)中(账户/ApiKey/公开上传页)
匿名外链分享无有(可配)核心能力(过期/限次下载)有核心能力(短链/直链/相册)
存储后端Flysystem 全家桶(Local/S3/FTP/…)本地为主(多挂载点)本地 + S3 + SQLite 元数据本地 + S3本地 + S3
分块/续传上传有(分块+并发+暂停续传)有无(单请求,限大文件需调参)有(分块)有(分块)
部署形态Apache+PHP 官方镜像;无官方 k8s Chart单文件 Python,依赖极简单 Go 二进制/镜像PHP 官方镜像三服务组合(前端+后端+Caddy)
典型场景内部团队文件工作台个人多媒体中心+万能文件入口对外临时发大文件轻量文件管理+分享对外收发文件、上传页

选型建议:

  • 需要「多用户、按权限隔离、把存储换成 S3」的管理型场景 → FileGator 是 PHP 栈里最完整的选择;若团队只有 Python 诉求且想要一个文件搞定一切,看 copyparty。
  • 需要「把文件发给外部的人,带过期和次数限制」→ Gokapi/Chibisafe 型,FileGator 不适用。
  • 想要「管理 + 分享」双能力各取其一 → 常见组合是 FileGator(内管)+ Gokapi(外发),两者体量都很小可同机共存。
  • 本站已有专栏的同类组件可参考:《Chibisafe 介绍与选型指南》(分享型代表,其部署见《Chibisafe v6.7.0 Docker Compose 部署指南》);bewCloud(1.2k 星)是集成云套件(含文件/日历/联系人)的另一个方向,未建专栏前不做深链。

八、参考链接