使用限制
1. S3 API 限制
以下标准严格遵循 S3 协议标准进行规范。
| 项目 | 规格 |
|---|---|
| 最大对象大小 | 5 TiB |
| 最小对象大小 | 0 B |
| 单次 PUT 操作的最大对象大小 | 非分段上传:500 GiB;分段上传:5 TiB |
| 每次上传的最大分段数 | 10,000 |
| 分段大小范围 | 5 MiB 到 5 GiB;最后一段可以是 0 B 到 5 GiB |
| 每次列出分段请求返回的最大分段数 | 10,000 |
| 每次列出对象请求返回的最大对象数 | 1,000 |
| 每次列出分段上传请求返回的最大分段上传数 | 1,000 |
| 存储桶名称的最大长度 | 63 个字符 |
| 对象名称的最大长度 | 1024 个字符 |
每个 / 分隔的对象名称段的最大长度 | 255 个字符 |
| 单个对象的最大版本数 | 10,000 (可配置) |
2. 纠删码限制
EC 参数根据 Reed-Solomon 矩阵 EC 算法配置。实际限制取决于具体的纠删码(EC)配置。
| 项目 | 规格 |
|---|---|
| 每个集群的最大服务器数量 | 无硬性限制 |
| 最小服务器数量 | 1 |
| 当服务器数量为 1 时,每台服务器的最小驱动器数量 | 1 (对于单节点单驱动器部署,无法提供额外的可靠性或可用性) |
| 当服务器数量为 2 或更多时,每台服务器的最小驱动器数量 | 1 |
| 每台服务器的最大驱动器数量 | 无硬性限制 |
| 读取法定数量 | N/2 |
| 写入法定数量 | (N/2) + 1 |
3. 对象命名限制
文件系统和操作系统限制
RustFS 中的对象名称主要受底层操作系统和文件系统的限制。例如,Windows 和其他一些操作系统限制使用某些特殊字符,如 ^、*、|、\、/、&、" 或 ;。
请参阅相关文档,获取基于您特定操作系统和文件系统的完整限制列表。
RustFS 建议在生产环境中使用基于 XFS 文件系统的 Linux 操作系统,以获得更好的性能和兼容性。
命名冲突处理
在 RustFS 中,应用程序必须为所有对象分配唯一且不冲突的键。这包括避免创建名称可能与父对象或兄弟对象名称冲突的对象。RustFS 将在发生冲突的位置执行 LIST 操作时返回一个空集。
例如,以下操作将导致命名空间冲突
bash
PUT data/hello/2025/first/a.csv
PUT data/hello/2025/first # Conflicts with existing object prefix
PUT data/hello/2025/first/
PUT data/hello/2025/first/vendors.csv # Conflicts with existing object尽管您可以对这些对象执行 GET 或 HEAD 操作,但命名冲突将导致在 hello/2025/first/ 路径执行的 LIST 操作返回空结果集。