Перейти к содержимому

Raw

Реестр Raw предоставляет универсальное файловое хранилище через HTTP PUT/GET/DELETE. Используйте его для бинарных файлов, скриптов, конфигурационных файлов или любых артефактов, которые не подходят под другие форматы реестров.

Загрузка и скачивание файлов с помощью curl:

Окно терминала
# Загрузка
curl -X PUT --data-binary @myfile.tar.gz http://nora.example.com:4000/raw/path/to/myfile.tar.gz
# Скачивание
curl -O http://nora.example.com:4000/raw/path/to/myfile.tar.gz
# Проверка существования файла
curl -I http://nora.example.com:4000/raw/path/to/myfile.tar.gz
# Удаление
curl -X DELETE http://nora.example.com:4000/raw/path/to/myfile.tar.gz

Реестр Raw не поддерживает upstream-проксирование. Он работает исключительно как прямое хранилище.

ФункцияСтатусПримечание
Загрузка (PUT)ПолнаяЛюбой тип файла
Скачивание (GET)ПолнаяContent-Type по расширению
Удаление (DELETE)Полная
Проверка существования (HEAD)ПолнаяВозвращает размер + Content-Type
Максимальный размер файлаПолнаяНастраивается (по умолчанию 100 МБ)
Условная перезапись (If-Match)ПолнаяНа основе ETag, возвращает 200 при успехе
Создание без перезаписи (If-None-Match: *)ПолнаяВозвращает 412 если ресурс существует
Листинг каталоговНе реализовано
ИммутабельностьПолнаяПо умолчанию; повторная загрузка возвращает 409 без условных заголовков

Переменные окружения:

ПеременнаяОписаниеПо умолчанию
NORA_RAW_ENABLEDВключить реестр Rawtrue
NORA_RAW_MAX_FILE_SIZEМаксимальный размер файла в байтах104857600 (100 МБ)
NORA_RAW_CACHE_CONTROLЗаголовок Cache-Control для GET/HEAD ответовno-cache

config.toml:

[raw]
enabled = true
max_file_size = 104857600
cache_control = "no-cache"

Raw поддерживает условный PUT для безопасного создания и обновления:

Окно терминала
# Создать только если не существует (возвращает 412 если уже есть)
curl -X PUT -H "If-None-Match: *" --data-binary @file.txt http://nora:4000/raw/path/file.txt
# Перезаписать только при совпадении ETag (возвращает 412 при несовпадении)
ETAG=$(curl -sI http://nora:4000/raw/path/file.txt | grep -i etag | awk '{print $2}' | tr -d '\r')
curl -X PUT -H "If-Match: $ETAG" --data-binary @file-v2.txt http://nora:4000/raw/path/file.txt
  • Листинг каталогов не поддерживается — необходимо знать точный путь к файлу.
  • Файлы иммутабельны по умолчанию. Повторная загрузка по тому же пути возвращает 409, если не указаны условные заголовки (If-Match, If-None-Match).
  • Upstream-проксирование не поддерживается.