Skip to content

Ограничения использования

1. Ограничения S3 API

Следующие спецификации строго соответствуют стандарту протокола S3.

ПроектСпецификация
Максимальный размер объекта5 TiB
Минимальный размер объекта0 B
Максимальный размер объекта для одной операции PUTБез мультичасти: 500 GiB; мультичасть: 5 TiB
Максимальное число частей в одном мультизагрузке10,000
Диапазон размера части5 MiB до 5 GiB; последняя часть может быть 0 B до 5 GiB
Максимум частей в ответе на LIST PARTS10,000
Максимум объектов в ответе на LIST OBJECTS1,000
Максимум незавершенных мультизагрузок в ответе1,000
Максимальная длина имени корзины63 символа
Максимальная длина ключа объекта1024 символа
Максимальная длина сегмента ключа между /255 символов
Максимум версий одного объекта10,000 (конфигурируемо)

2. Ограничения стирающего кодирования (Erasure Coding)

Параметры EC конфигурируются на основе матрицы Рида—Соломона. См. фактическую конфигурацию EC.

ПроектСпецификация
Макс. число серверов в кластереБез ограничений
Мин. число серверов1
Мин. число дисков на сервер при 1 сервере1 (для одиночного узла/одного диска; без доп. надежности/доступности)
Мин. число дисков на сервер при ≥2 серверах1
Макс. число дисков на серверБез ограничений
Кворум чтенияN/2
Кворум записи(N/2) + 1

3. Ограничения именования объектов

Ограничения ФС и ОС

Имена объектов в RustFS в основном ограничены базовой ОС и файловой системой. Например, Windows и некоторые другие ОС ограничивают использование специальных символов: ^, *, |, \, /, &, " или ;.

См. документацию вашей ОС/ФС для полного списка ограничений.

Для продакшена RustFS рекомендует Linux с файловой системой XFS для лучшей производительности и совместимости.

Разрешение конфликтов имен

В RustFS приложение должно присваивать уникальные, не конфликтующие ключи всем объектам. Это включает недопущение создания объектов, имена которых конфликтуют с префиксами родительских или соседних объектов. При конфликте LIST на конфликтующем пути вернет пустое множество.

Пример конфликтов:

bash
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, конфликт имен приведет к пустому результату LIST по пути hello/2025/first/.

Опубликовано под лицензией Apache 2.0.