RustFS是一款简单、高效、分布式的对象存储。它100%兼容S3,使用Apache2 许可证发行的开源软件。
以下标准严格遵循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(可配置) |
EC参数请,基于里德-所罗门矩阵的EC算法进行配置。以实际EC参数配置为准。
项目 | 规格 |
---|---|
每个集群的最大服务器数量 | 无限制 |
最小服务器数量 | 1 |
当服务器数量为 1 时,每个服务器的最小驱动器数量 | 1(适用于单节点单驱动器部署,无法提供额外的可靠性或可用性) |
当服务器数量为 2 或更多时,每个服务器的最小驱动器数量 | 1 |
每个服务器的最大驱动器数量 | 无限制 |
读取仲裁数 | N/2 |
写入仲裁数 | (N/2) + 1 |
RustFS 中的对象名称主要受底层操作系统和文件系统的限制。例如,Windows 和某些其他操作系统限制使用某些特殊字符,如 ^
、*
、|
、\
、/
、&
、"
或 ;
。
请根据您的操作系统和文件系统的具体情况,参考相关文档以获取完整的限制列表。
RustFS 建议在生产环境中使用基于 XFS 文件系统的 Linux 操作系统,以获得更好的性能和兼容性。
在 RustFS 中,应用程序必须为所有对象分配唯一且不冲突的键。这包括避免创建名称可能与父对象或同级对象名称冲突的对象。RustFS 在发生冲突的位置执行 LIST 操作时将返回空集。
例如,以下操作会导致命名空间冲突:
PUT data/hello/2025/first/a.csv
PUT data/hello/2025/first # 与现有对象前缀冲突
PUT data/hello/2025/first/
PUT data/hello/2025/first/vendors.csv # 与现有对象冲突
尽管您可以对这些对象执行 GET 或 HEAD 操作,但名称冲突会导致在 hello/2025/first/
路径执行 LIST 操作时返回空结果集。