Closed gamelife1314 closed 5 years ago
github: https://github.com/bigfile/bigfile 中文文档:https://learnku.com/docs/bigfile
github: https://github.com/bigfile/bigfile
中文文档:https://learnku.com/docs/bigfile
Bigfile 是使用 Golang 开发的一个文件传输管理系统,支持通过 HTTP API,RPC 调用以及 FTP 客户端管理文件。它构建于许多优秀的开源项目之上,基于数据库实现了一个虚拟的文件组织系统,在 Bigfile 中您可以看到熟悉的文件夹和文件,这种实现方式也是我们权限控制的基础。在底层,Bigfile 将任何文件切分成 1 MB 的文件块存储, 我们称之为 Chunk ,每个 Chunk 依据 sha256 算法计算 Hash 值相互区分,相同的 Chunk 只会被存储一次。 我们用一张图来展示 Bigfile 的设计架构图:
Bigfile
HTTP API
RPC
FTP
1 MB
Chunk
sha256
Bigfile 是一个多应用系统,您可以创建多个应用,我们称之为 APP ,每个 APP 都有自己的空间, APP 之间相互隔离,互不干扰,互不侵犯。为了安全起见,我们不希望把应用密钥暴露给任何使用某个应用的人,因此每个 APP 应该创建具有某个权限的 Token 去操作文件。您可以限制 Token 仅仅能访问某个目录,设置失效时间,可用次数,只读访问以及限制使用 IP。我们也提供 HTTPS ,FTPS 以及带有双端验证功能的 RPC 服务,操作简单,使用方便,您唯一要做的使用我们提供的命令行工具生成证书,并且在启动服务的时候指定证书即可。
APP
Token
HTTPS
FTPS
进入 https://github.com/bigfile/bigfile/releases 页面下载对应平台最新的二进制包。
在 MacOS 上安装,除了其他选择之外,还可以通过 brew 直接安装:
brew install bigfile/tap/bigfile
也可以通过 snapcraft 安装:
sudo snap install --classic bigfile
从 release page 下载 .dep 或者 .rpm 文件,通过命令 dpkg -i 或者 rpm -i 安装
.dep
.rpm
dpkg -i
rpm -i
在 Windows 除了通过二进制安装,也可以通过 scoop 安装:
$ scoop bucket add bigfile https://github.com/bigfile/bigfile-bucket.git $ scoop install bigfile
如果您是 Go 语言开发者,可以下载源码直接运行:
Go
go get -u -v github.com/bigfile/bigfile go run artisan/bigfile.go --version
或者您也可以直接安装在本地,这将在您的 ${GOPATH}/bin 目录下生成一个名为 artisan 的可执行文件,Windows 平台下将会生成 artisan.exe :
${GOPATH}/bin
artisan
artisan.exe
go install -a -v github.com/bigfile/bigfile/artisan
或者可以直接在源码目录下构建,这会在当前目录下生成一个名为 bigfile 的可执行文件,Windows 平台下将会生成 bigfile.exe :
bigfile
bigfile.exe
go build artisan/bigfile.go
生成证书的入口在 rpc 子命令下,但是可以用在任何你想用的地方:
rpc
bigfile rpc:make-cert
这条命令过后,会在主机上相应的目录下生成 6 个证书文件。以 ca 为前缀的表示证书机构,只有证书机构才具有资质进行签发证书,我们生成的 ca 证书是自签名证书,自签名证书一般不被系统所信任,不过你可以将它加到系统的可信任证书库中。以 server 为前缀的表示服务器证书,服务器证书可以添加可信任 IP,通过参数 --server-cert-ips 指定。以 client 为前缀的用于客户端,这个主要用在 RPC 服务中实现双端验证。.pem 为后缀的表示经过 PEM 编码的证书文件,.key 为后缀的表示证书密钥。
ca
server
IP
--server-cert-ips
client
.pem
PEM
.key
bigfile http:start --cert-file server.pem --cert-key server.key
bigfile rpc:start --ca-cert ca.pem --server-cert server.pem --server-key server.key
bigfile ftp:start --tls-enable --cert-file server.pem --key-file server.key
基本介绍
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
服务,操作简单,使用方便,您唯一要做的使用我们提供的命令行工具生成证书,并且在启动服务的时候指定证书即可。下载二进制包
进入 https://github.com/bigfile/bigfile/releases 页面下载对应平台最新的二进制包。
MacOS
在 MacOS 上安装,除了其他选择之外,还可以通过 brew 直接安装:
snapcraft
也可以通过 snapcraft 安装:
deb/rpm:
从 release page 下载
.dep
或者.rpm
文件,通过命令dpkg -i
或者rpm -i
安装scoop
在 Windows 除了通过二进制安装,也可以通过 scoop 安装:
从源码安装
如果您是
Go
语言开发者,可以下载源码直接运行:或者您也可以直接安装在本地,这将在您的
${GOPATH}/bin
目录下生成一个名为artisan
的可执行文件,Windows 平台下将会生成artisan.exe
:或者可以直接在源码目录下构建,这会在当前目录下生成一个名为
bigfile
的可执行文件,Windows 平台下将会生成bigfile.exe
:生成证书
生成证书的入口在
rpc
子命令下,但是可以用在任何你想用的地方:这条命令过后,会在主机上相应的目录下生成 6 个证书文件。以
ca
为前缀的表示证书机构,只有证书机构才具有资质进行签发证书,我们生成的ca
证书是自签名证书,自签名证书一般不被系统所信任,不过你可以将它加到系统的可信任证书库中。以server
为前缀的表示服务器证书,服务器证书可以添加可信任IP
,通过参数--server-cert-ips
指定。以client
为前缀的用于客户端,这个主要用在RPC
服务中实现双端验证。.pem
为后缀的表示经过PEM
编码的证书文件,.key
为后缀的表示证书密钥。启动 HTTP Server
启动 RPC Server
启动 FTP Server