2024-11-21

Nextcloud сам по себе довольно удобен, особенно с дополнительными расширениями и подключением офис-редакторов по типу  Collabora или OpenOffice, однако столкнулись с проблемой загрузки огромного количества (свыше миллиона) небольших файлов с разным расширением (в основном docx,xlsx,jpeg,pdf и т.д.), таковых набралось не несколько терабайт. Штатным методом через официального клиента или web эту проблему не решить, загрузка будет зависать и продолжаться бесконечно долго. Происходит это по причине медленной работы баз данных, фактически каждый файл необходимо открыть, сохранить в бд и закрыть.

Решением может выступать упрощение операции до двух:

1. Скопировать данные в хранилище Nextcloud

2. Просканировать наличие файлов

Приступим,

В моем случае есть компьютер с Windows и подключенным сетевым диском-хранилищем, Nextcloud развернут на Linux Ubuntu (не в snap или docker) и к нему есть доступ по ssh под root

На Windows открываем командную строку (CMD) и переходим к диску-хранилищу (у меня он под буквой Z)

z:         #переход к диску

dir       #просмотр содержимого

Предположим у менять есть папка DataShare, чтобы ее перенести вводим

scp -rp DataShare root@10.0.0.2:/srv/nextcloud/data/myuser/files/

Если хотите скопировать весь диск, команда будет

 scp -rp * root@10.0.0.2:/srv/nextcloud/data/myuser/files/

где 10.0.0.2 – адрес вашего Nextcloud сервера, можно использовать и домен, главное чтобы был доступ по 22 порту SSH

/srv/nextcloud/data/myuser/files/ – путь куда копировать, он может быть другой и вместо myuser подставить имя пользователя, кому копируем файлы

После нажимаем Enter и запускается процесс копирования, ограничивается он только скоростью дисков и сети

Далее необходимо просканировать файлы, входим под root в CLI Nextcloud и вводим

 sudo -u www-data php /srv/nextcloud/occ files:scan myuser

где вместо myuser – пользователя, которому копировали данные

/srv/nextcloud/occ – путь до occ

Чтобы просканировать отдельную папку, можно воспользоваться дополнительным аттрибутом

sudo -u www-data php /srv/nextcloud/occ files:scan –path myuser/files/DataShare

В конце появится небольшая информативная табличка о результатах

scanNC

После чего можем зайти в Web-интерфейс Nextcloud и убедиться в наличии файлов

Если хотим чтоб он и далее синхронизировался с диском, то в приложении клиенте добавляем на синхронизацию диск или папку при этом не ставим галочку  Использовать виртуальные файлы (VFS), иначе получим ошибку couldn’t convert to placeholder

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *