Устранение проблем с облачным хранилищем NextCloud
При работе в Nextcloud возникают ошибки.
Для их устранения необходимо перевести облачное хранилище в режим обслуживания. Сделаем это с помощью утилиты occ находящаяся в корне web-проекта.
Переводим в режим обслуживания выполнив команду:
# sudo -u www-data php occ maintenance:mode --on
Для отключения режима обслуживания выполним команду:
# sudo -u www-data php occ maintenance:mode --off
В режиме обслуживания на Desktop-клиентах будет запрошен пароль пользователя.
Ошибка «File is locked»
Ошибка при использовании серверов с медленной дисковой подсистемой.
Для исправления потребует перевести хранилища в режим обслуживания и выполненить SQL-запрос по очистке таблицы блокировок.
> delete from oc_file_locks;
Ошибка «Файл был удален с сервера» («File was deleted from server»)
Это довольно распространенная не блокирующая ошибка и синхронизация будет продолжаться, но в логах клиента будут присутствовать соответствующие ошибки.
Для устранения этой ошибки необходимо воспользоваться встроенной функцией сканирования файлового хранилища. Эта функция может быть запущена для всех пользователей:
# sudo -u www-data php occ files:scan --all
Это доволно длительная операция и зависящая от того сколько пользователей и файлов и для устранения проблем у одного пользователя можно указать вместо параметра его имя или идентификатор из Active Directory:
# sudo -u www-data php occ files:scan 2718B513-40C2-497A-8461-5CA930CEC4E9
Если вам известно расположение сбойного файла, то можно указать какой каталог требуется пересканировать:
# sudo -u www-data php occ files:scan 2718B513-40C2-497A-8461-5CA930CEC4E9 \ --path="2718B513-40C2-497A-8461-5CA930CEC4E9/files_versions/"
Когда штатные средства не помогают, придется удалить записи о файлах напрямую из базы данных, подключаемся базе данных mysql и выполняем запрос файлового идентификатора искомого файла.
> select fileid,path from oc_filecache where path like '%data/4.%';
Где, '%data/4.%' — это запрос части имени файла вызывающего ошибку.
Следующим этапом удаляем идентификаторы сбойных файлов:
> delete from oc_filecache where fileid=589434;
589434 — соответственно идентификатор сбойного файла.
Ошибка «Precondition failed (An If-Match header was specified and the resource did not exist)»
Ошибка возникает на стороне клиента и оптимальным решением является переместить файл на временное хранение в другой каталог и после окончания синхронизации переместить файл обратно.