Устранение проблем с облачным хранилищем 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)»

Ошибка возникает на стороне клиента и оптимальным решением является переместить файл на временное хранение в другой каталог и после окончания синхронизации переместить файл обратно.

Понравилась статья, расскажи о ней друзьям, нажми кнопку!