buckit-io/buckit
GitHub: buckit-io/buckit
Buckit 是一个开源的、兼容 S3 协议的对象存储系统,可部署在自有服务器上实现从单节点到数百 PB 分布式集群的弹性扩展。
Stars: 34 | Forks: 0
# Buckit 对象存储
Buckit 是一个开源的、兼容 S3 的对象存储系统,你可以运行在
自己的普通服务器上。它为你的应用程序提供 Amazon S3 风格的 API,同时
将数据保留在你的控制之下,并且可以从一个小型的设置扩展到
数百 PB 的规模。当团队希望使用类似 S3 的存储,而不想把
所有数据发送到公有云或支付大规模的云存储账单时,他们会使用 Buckit。
入门指南
常见问题
文档
博客:为什么我 Fork 了 MinIO 以保持其开源,并让它变得更快 ## Buckit 提供的功能 - 兼容 S3 的对象存储服务器,可与现有的 S3 SDK 和工具配合使用。 - 用于开发和小型部署的独立单节点模式。 - 支持数百 PB 的分布式集群模式。 - 用于 bucket 和 object 管理的浏览器控制台。 - 用于管理和 object 自动化的 CLI 工具。 - 基于 Web 的集群和节点管理。 ## 快速开始 构建并运行本地 Buckit 服务器: ``` make build mkdir -p /tmp/buckit-data ./buckit server /tmp/buckit-data --console-address :9001 ``` S3 API 监听在 `http://127.0.0.1:9000`。 控制台监听在 `http://127.0.0.1:9001`。 默认的开发凭据是: ``` Access key: buckitadmin Secret key: buckitadmin ``` 对于任何长期使用的部署,在启动服务器之前,请设置显式的 root 凭据: ``` export MINIO_ROOT_USER=myadmin export MINIO_ROOT_PASSWORD=mysecretpassword ./buckit server /data --console-address :9001 ``` 为了与存储引擎和现有的部署工具兼容,root 凭据环境变量名称仍为 `MINIO_ROOT_USER` 和 `MINIO_ROOT_PASSWORD`。 ## 分布式服务器模式 对于分布式部署,在每个参与的节点上运行相同的 `buckit server` 命令,并使用共享的一组 drive endpoint 和相同的 root 凭据。 示例模式: ``` export MINIO_ROOT_USER=myadmin export MINIO_ROOT_PASSWORD=mysecretpassword buckit server \ http://node{1...4}.example.com/data{1...4} \ --console-address :9001 ``` 对于新的生产集群,建议使用 [`bm web`](https://github.com/buckit-io/buckit#buckit-manager-web),这样主机发现、磁盘选择、 预检查、服务设置和生成的凭据都将由 manager 处理,而不是手动编写的 shell 命令。 ## 安装 Buckit 有关详细的安装说明,请参阅 [部署指南](https://buckit.sh/docs/operations/deployments/baremetal-deploy-server)。 ### Linux 软件包(推荐) Linux 发布包提供 `.deb`、`.rpm` 和 `.apk` 格式的制品。 辅助脚本会为当前系统下载软件包,验证其 SHA-256 校验和,并打印要运行的包管理器命令: ``` curl -fsSL https://buckit-io.github.io/buckit/install-linux.sh | sh ``` ### 从源码构建 Buckit 需要 Go 1.25 或更高版本。如果未安装 Go,请从官方 Go 安装页面下载并安装:。
```
git clone https://github.com/buckit-io/buckit.git
cd buckit
make build
```
构建后将生成 `./buckit` 文件。
你也可以直接使用 Go 进行安装:
```
go install github.com/buckit-io/buckit@latest
```
手动构建时,请包含 `kqueue` 构建标签:
```
go build -tags kqueue -trimpath --ldflags "$(go run buildscripts/gen-ldflags.go)" -o buckit
```
## 构建 Docker 镜像
Buckit 发布了用于常规 Docker 使用的容器镜像。要构建自定义
镜像,请使用发布工作流或修改根目录下的 `Dockerfile` 以适应你自己的
制品流水线。
运行已发布的镜像:
```
docker run -p 9000:9000 -p 9001:9001 \
-v "$HOME/buckit-data:/data" \
ghcr.io/buckit-io/buckit:latest server /data --console-address :9001
```
使用显式凭据运行:
```
docker run -p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=myadmin \
-e MINIO_ROOT_PASSWORD=mysecretpassword \
-v "$HOME/buckit-data:/data" \
ghcr.io/buckit-io/buckit:latest server /data --console-address :9001
```
## 使用 `bm` 操作 Buckit
`bm` 是用于 Buckit 和兼容 S3 对象存储的 Buckit Manager CLI。
它提供了 `ls`、`cp`、`cat`、`mirror` 和 `rm` 等 object 命令,以及
Buckit 管理和集群管理工作流。
请参阅 [`bm` GitHub 仓库](https://github.com/buckit-io/bm)。
在 macOS 或 Linux 上安装 `bm`:
```
curl -fsSL https://buckit-io.github.io/bm/install.sh | sh
bm --help
```
在 Windows PowerShell 上安装 `bm`:
```
irm https://buckit-io.github.io/bm/install.ps1 | iex
bm --help
```
为本地 Buckit 服务器添加别名:
```
bm alias set local http://localhost:9000 buckitadmin buckitadmin
bm admin info local
```
创建 bucket 并复制数据:
```
bm mb local/mydata
bm cp --recursive ./mydata/ local/mydata/
bm ls local/mydata
```
读取、同步和删除 object:
```
bm cat local/mydata/object.txt
bm mirror ./mydata local/mydata
bm rm local/mydata/object.txt
```
在执行大型或递归删除操作之前使用 `--dry-run`:
```
bm rm --recursive --dry-run local/mydata
```
常用 `bm` 命令:
| 命令 | 用途 |
| --- | --- |
| `bm alias set` | 添加或更新 Buckit 或兼容 S3 endpoint 的别名。 |
| `bm admin info` | 显示部署信息并验证连通性。 |
| `bm ls` | 列出 bucket、前缀、object 或本地文件。 |
| `bm mb` | 创建 bucket 或本地目录。 |
| `bm cp` | 复制文件或 object。 |
| `bm cat` | 打印文件或 object 内容。 |
| `bm mirror` | 同步本地和对象存储路径。 |
| `bm rm` | 删除文件或 object。 |
| `bm version` | 管理 bucket 版本控制。 |
| `bm retention` | 管理 object 保留策略。 |
| `bm legalhold` | 管理 object 法定保留。 |
| `bm tag` | 管理 object 标签。 |
| `bm ilm` | 管理生命周期规则和层。 |
| `bm replicate` | 管理 bucket 复制。 |
| `bm update` | 更新 `bm` 二进制文件。 |
完整的 `bm` CLI 文档:
## Buckit Manager Web
`bm` 还内置了 Buckit Manager Web,这是一个用于部署和管理
Buckit 集群的本地 Web UI。
使用以下命令启动:
```
bm web
```
默认情况下,Buckit Manager 会在 `http://127.0.0.1:9443/` 打开。
使用 Buckit Manager Web 来:
- 在 macOS 或 Windows 上准备本地单节点 Buckit 部署。
- 通过 SSH 在一台或多台 Linux 服务器上部署受管 Buckit 集群。
- 导入现有的 Buckit 或 MinIO 集群。
- 监控集群健康状况、节点、pool 和 drive。
- 运行受支持的集群和节点操作。
Buckit Manager 文档:
## Buckit 的内部工作原理
- [架构](https://buckit.sh/docs/operations/concepts/architecture)
- [Erasure Coding](https://buckit.sh/docs/operations/concepts/erasure-coding)
- [可用性与弹性](https://buckit.sh/docs/operations/concepts/availability-and-resiliency)
## 开发
常用仓库命令:
```
make build
make install
make test
make lint
make verifiers
go generate ./...
make check-gen
```
手动运行时,构建和测试命令必须包含 `kqueue` 标签:
```
CGO_ENABLED=0 go test -v -tags kqueue,dev ./...
```
当源类型发生更改时,必须重新生成并提交以 `_gen.go` 或 `_string.go` 结尾的生成文件。
## 许可与支持
Buckit 根据
[GNU AGPLv3](https://github.com/buckit-io/buckit/blob/master/LICENSE) 授权。
所有使用都必须遵守 AGPLv3 的义务。该许可证不提供任何担保、
责任或支持义务。可以通过 GitHub
和 [Buckit Discord 社区](https://discord.gg/v5utBPpsGu) 获得社区支持。
另请参阅:
- [贡献者指南](https://github.com/buckit-io/buckit/blob/master/CONTRIBUTING.md)
- [许可证合规性](https://github.com/buckit-io/buckit/blob/master/COMPLIANCE.md)
- [Buckit Manager CLI](https://github.com/buckit-io/bm)
- [Buckit Discord](https://discord.gg/v5utBPpsGu)
入门指南
常见问题
文档
博客:为什么我 Fork 了 MinIO 以保持其开源,并让它变得更快 ## Buckit 提供的功能 - 兼容 S3 的对象存储服务器,可与现有的 S3 SDK 和工具配合使用。 - 用于开发和小型部署的独立单节点模式。 - 支持数百 PB 的分布式集群模式。 - 用于 bucket 和 object 管理的浏览器控制台。 - 用于管理和 object 自动化的 CLI 工具。 - 基于 Web 的集群和节点管理。 ## 快速开始 构建并运行本地 Buckit 服务器: ``` make build mkdir -p /tmp/buckit-data ./buckit server /tmp/buckit-data --console-address :9001 ``` S3 API 监听在 `http://127.0.0.1:9000`。 控制台监听在 `http://127.0.0.1:9001`。 默认的开发凭据是: ``` Access key: buckitadmin Secret key: buckitadmin ``` 对于任何长期使用的部署,在启动服务器之前,请设置显式的 root 凭据: ``` export MINIO_ROOT_USER=myadmin export MINIO_ROOT_PASSWORD=mysecretpassword ./buckit server /data --console-address :9001 ``` 为了与存储引擎和现有的部署工具兼容,root 凭据环境变量名称仍为 `MINIO_ROOT_USER` 和 `MINIO_ROOT_PASSWORD`。 ## 分布式服务器模式 对于分布式部署,在每个参与的节点上运行相同的 `buckit server` 命令,并使用共享的一组 drive endpoint 和相同的 root 凭据。 示例模式: ``` export MINIO_ROOT_USER=myadmin export MINIO_ROOT_PASSWORD=mysecretpassword buckit server \ http://node{1...4}.example.com/data{1...4} \ --console-address :9001 ``` 对于新的生产集群,建议使用 [`bm web`](https://github.com/buckit-io/buckit#buckit-manager-web),这样主机发现、磁盘选择、 预检查、服务设置和生成的凭据都将由 manager 处理,而不是手动编写的 shell 命令。 ## 安装 Buckit 有关详细的安装说明,请参阅 [部署指南](https://buckit.sh/docs/operations/deployments/baremetal-deploy-server)。 ### Linux 软件包(推荐) Linux 发布包提供 `.deb`、`.rpm` 和 `.apk` 格式的制品。 辅助脚本会为当前系统下载软件包,验证其 SHA-256 校验和,并打印要运行的包管理器命令: ``` curl -fsSL https://buckit-io.github.io/buckit/install-linux.sh | sh ``` ### 从源码构建 Buckit 需要 Go 1.25 或更高版本。如果未安装 Go,请从官方 Go 安装页面下载并安装:
标签:EVTX分析, Go语言, S3兼容, 云存储, 分布式存储, 存储服务器, 对象存储, 日志审计, 程序破解, 请求拦截