buckit-io/buckit

GitHub: buckit-io/buckit

Buckit 是一个开源的、兼容 S3 协议的对象存储系统,可部署在自有服务器上实现从单节点到数百 PB 分布式集群的弹性扩展。

Stars: 34 | Forks: 0

# Buckit 对象存储

Build status Vulnerability check Buckit website Join Buckit on Discord

Buckit 是一个开源的、兼容 S3 的对象存储系统,你可以运行在 自己的普通服务器上。它为你的应用程序提供 Amazon S3 风格的 API,同时 将数据保留在你的控制之下,并且可以从一个小型的设置扩展到 数百 PB 的规模。当团队希望使用类似 S3 的存储,而不想把 所有数据发送到公有云或支付大规模的云存储账单时,他们会使用 Buckit。

Buckit web console

## 了解更多 观看演示视频
入门指南
常见问题
文档
博客:为什么我 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)
标签:EVTX分析, Go语言, S3兼容, 云存储, 分布式存储, 存储服务器, 对象存储, 日志审计, 程序破解, 请求拦截