Привет! Я потратил около шести часов, разбираясь, как UniFi-Drive взаимодействует с SMB-шарами, и тестируя разные подходы, пока не нашёл надёжный обходной путь. С радостью поделюсь этим решением в надежде, что это спасёт других от подобных проблем и позволит вам запустить резервное копирование Hetzner Storage Box без ожидания официального исправления.
**Обходной путь: Направление UniFi-Drive к подпапке в вашем Hetzner Storage Box**
Зачем это нужно:
Hetzner Storage Boxes предоставляют только один общий ресурс по умолчанию (xxx.domain.com/backup) и не позволяют просматривать корневой уровень. Интерфейс UniFi-Drive не позволяет указать более глубокий путь, поэтому по умолчанию вы не можете выбрать подпапку. Это руководство показывает, как внедрить выбранную вами подпапку (например, xxx.domain.com/backup/myfolder) через переопределение JS в браузере.
🛠 **Предварительные требования:**
* Создайте подпапку внутри общего ресурса /backup.
* Подключитесь к вашему Storage Box (например, через Windows Explorer или mount.cifs) используя UNC-путь: \\xxx.domain.com\backup
* Внутри этого общего ресурса вручную создайте папку, которую планируете использовать (например, myfolder).
* Доступ к веб-интерфейсу UniFi-Drive.
Вы должны иметь возможность войти в систему и начать мастер резервного копирования.
* Инструменты разработчика браузера и локальные переопределения.
Опыт открытия DevTools (Chrome/Edge/Firefox) и включения Local Overrides для исправления JS-файлов в вашем браузере.
🚀 **Пошаговое руководство:**
1. **Откройте инструменты разработчика**
Нажмите F12 или Ctrl+Shift+I в вашем браузере.
Перейдите в панель Sources.
2. **Запустите новую задачу резервного копирования**
В UniFi-Drive перейдите в Настройки → Резервные копии → Создать задачу.
Введите:
* Название задачи, например, Резервное копирование подпапки Hetzner.
* Папки с источниками, которые вы хотите резервировать.
* SMB-сервер: только xxx.domain.com (без шары или пути).
Нажмите Connect один раз (должно успешно подключиться, но вы не сможете видеть/выбирать какие-либо папки назначения).
3. **Включите локальное переопределение для swai-x.x.x.js**
В DevTools → Sources найдите:
app-assets/drive/
└─ swai-x.x.x.js
Щёлкните правой кнопкой мыши swai-x.x.x.js → Override content (выберите любую локальную папку, подтвердите предупреждения).
Ваш браузер теперь будет сохранять изменения в этом файле.
4. **Исправьте массив "destinations"**
В вашем переопределённом swai-x.x.x.js найдите строку (включая кавычки):
"destinations"
Найдите строку:
path: ["destinations", t, r]
Измените её так, чтобы она добавляла папку по умолчанию Hetzner /backup:
path: ["destinations", t, r]
+ path: ["destinations", t, r, "/backup"]
5. **Перезагрузите и повторите подключение**
Обновите страницу UniFi-Drive.
В мастере резервного копирования снова нажмите Connect.
Исправленный код теперь попытается подключиться к \\xxx.domain.com\backup, что позволит вам видеть и выбирать эту подпапку.
6. **Выберите папку назначения и завершите**
Нажмите Выбрать папку назначения.
Вы теперь увидите свою пользовательскую подпапку — выберите её и завершите остальную часть настройки как обычно.
7. **Откат**
В DevTools → Overrides (или Local Overrides) удалите или отключите переопределение для swai-*.js.
Обновите страницу — UniFi-Drive вернётся к своему исходному поведению.
🏁 **Заключение**
На мой взгляд, этот обходной путь очень безопасен: он исправляет только локальную копию JavaScript UniFi-Drive в вашем браузере и никогда не затрагивает устройство UNAS Pro или конфигурацию вашего Hetzner Storage Box. Как только вы завершите руководство и удалите Local Override, вы сразу же вернётесь к поведению по умолчанию, официальному — без каких-либо постоянных побочных эффектов. Даже если в будущей версии UniFi-Drive появится поддержка подпапок, вы по-прежнему сможете использовать задачу резервного копирования, созданную с помощью этого руководства, и продолжать работу как обычно. Рассматривайте это как безвредную, клиентскую «горячую заплату».