Bigfile 是使用 Golang 开发的一个文件传输管理系统,支持通过 HTTP API , RPC 调用以及 FTP 客户端管理文件。它构建于许多优秀的开源项目之上,基于数据库实现了一个虚拟的文件组织系统,在 Bigfile 中您可以看到熟悉的文件夹和文件,这种实现方式也是我们权限控制的基础。在底层, Bigfile 将任何文件切分成 1 MB 的文件块存储, 我们称之为 Chunk ,每个 Chunk 依据 sha256 算法计算 Hash 值相互区分,相同的 Chunk 只会被存储一次。 我们用一张图来展示 Bigfile 的设计架构图:
Bigfile 是一个多应用系统,您可以创建多个应用,我们称之为 APP ,每个 APP 都有自己的空间, APP 之间相互隔离,互不干扰,互不侵犯。为了安全起见,我们不希望把应用密钥暴露给任何使用某个应用的人,因此每个 APP 应该创建具有某个权限的 Token 去操作文件。您可以限制 Token 仅仅能访问某个目录,设置失效时间,可用次数,只读访问以及限制使用 IP。我们也提供 HTTPS , FTPS 以及带有双端验证功能的 RPC 服务,操作简单,使用方便,您唯一要做的使用我们提供的命令行工具生成证书,并且在启动服务的时候指定证书即可。