运行在客户自己存储之上的文件管理器
通过 iframe 或 SDK 嵌入,签发一个限定范围的 JWT,每个租户的文件就保存在他们自己的 S3、R2、SFTP 或本地磁盘中——永远不会被复制到一个你必须运维、保护或付费的数据库里。
查看实际效果
每次覆盖都会保留旧版本,随时可恢复
{ "event": "upload",
"file": "invoice.pdf" } 文件事件触发已签名的 HTTP POST 到你的端点——Zapier、Make、n8n
从图片和 PDF 中提取文字,直接在 API 响应中返回
在文件存储之前遮蔽身份证号、银行卡号和密钥等敏感信息
每个上传文件在存储前都会被扫描——ClamAV 或你自己的云端 key
使用可验证的 Content Credentials 为文件签名(C2PA 溯源)
单向同步到第二个磁盘——本地、S3、R2 或 SFTP
以 NDJSON 或 CSV 格式导出完整审计日志,含已归档记录
使用你自己的 OIDC 身份提供商登录——用户组自动映射到权限
客户的文件留在客户自己的存储桶里
FluxFiles 是可嵌入的文件管理器:每个租户接入自己的 S3/R2 存储桶——你永远不存储他们的数据或凭证。
-
数据主权
文件存放在客户自己的云账户与区域——契合 GDPR、合规与企业采购。
-
静态不留数据、不留凭证
存储桶凭证以 AES-256-GCM 加密在 JWT 中,仅在运行时解密——绝不写入数据库或日志。
-
存储成本可归零
存储与出口流量由各客户承担,而非你。账单不会随用户增长而膨胀。
-
无状态且可嵌入
无中心数据库。通过 iframe 或 SDK 把选择器嵌入任意应用;由你的后端签发受限的短时令牌。
工作原理:你的应用把租户的存储桶凭证加密进一个短时 JWT(HKDF-SHA256 + AES-256-GCM)。FluxFiles 仅为执行所请求的操作而解密。
每个租户一个令牌 —— 各有各的规则
FluxFiles 无状态:后端签发的 JWT 就是该租户的配置。存储路径、单文件大小、配额、文件数量、允许类型、权限 —— 全部在服务端强制执行。无需为每个租户准备配置文件,无需重启。
// Your backend, per request — the token IS the tenant's config.
import { createToken } from '@fluxfiles/node';
const claims = tenant.plan === 'pro'
// 100 MB/file · any type · 50 GB · unlimited files · own bucket
? { disks: ['s3'], maxUploadMb: 100, allowedExt: null,
maxStorageMb: 51200, maxFiles: 0 }
// 5 MB/file · images only · 500 MB · 200 files
: { disks: ['local'], maxUploadMb: 5, allowedExt: ['jpg','png','webp'],
maxStorageMb: 500, maxFiles: 200 };
const token = createToken({
secret: process.env.FLUXFILES_SECRET,
userId: tenant.id,
prefix: `tenant_${tenant.id}/`, // isolates each tenant's files
perms: ['read', 'write', 'delete'],
...claims,
}); 搭配 BYOB,让每个租户使用自己的存储桶。
为交付文件功能的团队而生
如果你的产品需要上传,FluxFiles 即插即用 —— 而不会让你成为客户数据的“房东”。
SaaS 与多租户应用
为每位客户提供基于自有存储桶的文件管理器。按租户的令牌限定与数据主权开箱即用。
代理商与自由职业者
为每个客户交付精致的媒体库,无需为每个项目搭建存储基础设施。
CMS 与编辑器集成
通过 iframe SDK 将媒体选择器嵌入 CKEditor、TinyMCE、Summernote 或你自己的编辑器。
内部工具与仪表板
一个下午即可为后台面板加上上传、预览和带审计的文件操作。
常见问题