- 给非技术同事开一个浏览器入口访问内部 SFTP/SMB 共享:不用装客户端、不用发密钥,权限和路径在服务端收口;换成直接开 SFTP 账号,账号生命周期和审计都难管
- 需要把同一份存储同时以 S3、WebDAV、FTP 暴露给不同老系统:网关层做协议转换,后端存储只维护一份;自己写适配层要处理各协议语义差异,成本不低
- 运维/数据团队在浏览器里直接看 parquet、arrow、sqlite、psd 这类文件:省掉下载到本地再开工具的往返;用通用网盘类工具这些格式只能当二进制下载
- 文件落盘后要触发 Slack/邮件通知这类轻量联动:内置工作流引擎按文件事件串动作,不用为此单独搭一套事件总线
filestash
mickael-kerjeanAGPL-3.0活跃维护 有专家点评一个用 Go 写的通用文件管理平台,把 FTP、S3、Dropbox、Git、IPFS 等多种存储统一到一个 Web 界面里,方便人和程序集中访问和管理文件。
:file_folder: Universal File Management Platform (for humans and agents)
专家点评
上手难度:进阶更新于 2026-11-11把散落的 SFTP/S3/SMB/WebDAV 存储统一成一个 Web 文件管理器,并反向以多种协议暴露出去
适用场景
踩坑
- 部署前会卡在文档上:README 不给安装命令,只指向官网文档;issue 里「Missing documentation of config file & env vars」被反复提出,配置项和环境变量要靠翻文档和源码确认,别指望 clone 完直接跑
- 想要 API 文档和视频教程的 poll 反应数排在最前,说明对外接口的说明长期不完整;如果你打算把它当网关嵌进自己的系统,接口行为要自己读代码验证
- 专业格式预览是独立插件包,不是主程序自带;只装主程序会发现 parquet/psd 之类打不开,需要额外确认插件安装路径
- 商业使用需购买支持合同,评估阶段就要把这条算进选型成本,别等上线前才发现
同类对比
同类可看 Nextcloud(更偏协作套件、生态重)和 rclone serve / filebrowser(更轻、只做单点协议暴露);如果只需要一个协议网关而不需要 Web UI 和工作流,filebrowser 这类更省事。
README 未给出具体安装命令,仅指向官方安装指南 https://www.filestash.app/docs/?origin=githubREADME 未说明
项目说明
由 README 自动翻译提炼统一文件管理平台,把 SFTP、S3、SMB 等各类存储统一成类似 Dropbox 的 Web 界面
一个用 Go 写的通用文件管理平台,把 FTP、S3、Dropbox、Git、IPFS 等多种存储统一到一个 Web 界面里,方便人和程序集中访问和管理文件。
核心能力
- 用插件架构接入 SFTP、S3、SMB、WebDAV、FTP、NFS、IPFS 等存储
- 提供浏览器端 Web 文件管理器,前端用原生 JS 手写
- 通过 API 与网关把数据以 SFTP、S3、FTP、WebDAV、MCP、AS2 协议暴露
- 内置工作流引擎,按文件事件串联 Slack、邮件等动作
- 文件预览插件覆盖 parquet、arrow、fits、psd、sqlite 等专业格式
容易踩的坑
README 未给出安装步骤,需先查阅官方文档确认部署方式;部分文件预览能力以独立插件包形式提供,需另行安装;商业使用需购买支持合同
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

What is this?
Key Features
Plugins
Malleability isn't an afterthought, it's the whole architecture:
anything that's not a fundamental truth of the universe lives in a plugin
Taken literally, the "truths of the universe" are a set of core interfaces, one for every key component of Filestash, and they're yours to implement (storage, authentication, authorisation, search, thumbnailing, apps, middleware, frontend changes, ...)
The oldest one is the storage interface, the one at work whenever you connect to a storage:
type IBackend interface {
Ls(path string) ([]os.FileInfo, error)
Stat(path string) (os.FileInfo, error)
Cat(path string) (io.ReadCloser, error)
Mkdir(path string) error
Rm(path string) error
Mv(from string, to string) error
Save(path string, file io.Reader) error
Touch(path string) error
}
Historically, plugins were made in Go and compiled in. Today there's a second path: runtime plugins, a zip you drop in the plugins folder. The zip can reshape the frontend and it can carry wasm implementing the very same core interfaces. That wasm runs in a VM with tight control on permissions: no declared network host, no way to phone home. Installing a plugin doesn't mean trusting it with everything.
For example:
use filestash::*;
#[derive(Default)]
pub struct Plugin;
impl Authorisation for Plugin {
fn ls(&self, _ctx: &Context, path: &str) -> Decision {
self.check(path)
}
fn cat(&self, _ctx: &Context, path: &str) -> Decision { ... }
fn stat(&self, _ctx: &Context, path: &str) -> Decision { ... }
}
impl Plugin {
fn check(&self, path: &str) -> Decision {
if path.split("/").any(|segment| segment == "top_secret") {
log::warn!("[TOPSECRET] access denied: beware of the leopard");
return Decision::Deny;
}
Decision::Allow
}
}
register!(Plugin: Authorisation);
These few lines give you a readonly view of your data where every folder named "top_secret" is off limits. For more examples, browse the plugin folder, the runtime plugin cookbook, and the plugin marketplace.
And to be clear, code is the power-user path, there are no code options
Getting Started
Support
- Commercial Users → support contract
- For individuals:
- #filestash on IRC (libera.chat)
- Bitcoin:
3LX5KGmSmHDj5EuXrmUvcg77EJxCxmdsgW - Open Collective
Why
Familiar with the infamous comment from Dropbox's launch on HN? In my memory it goes like this:
Credits
Filestash stands on the shoulders of: contributors, folks developing awesome libraries, BrandonM, a whole bunch of C stuff (the C standard library, libjpeg, libpng, libgif, libraw and many more), fontawesome, material, Browser stack to let us test on real devices, and the many guys from Nebraska and elsewhere who have been thanklessly maintaining the critical pieces that Filestash sits on top: