Миграция Nextcloud на S3

Относительно недавно встала передо мной задача переместить файловое хранилище объемом 90 ТБ на объектное хранилище S3.

Из сложностей было то, что в рунете почти нет статей на тему миграции, а те, что есть, описывают подключение внешнего хранилища.

Мне же нужно было,чтобы S3 было именно в качестве основного хранилища.

Задача не особо сложная, но требует предельной внимательности в процессе переноса.

Предварительные условия

Nextcloud 27 версии или выше. На версиях ниже 27 версии некорректно работает MultiPart Upload, вследствие чего файл загружается, но Nextcloud не воспринимает заголовок Content-Length и в БД файл оказывается нулевого размера, а такие файлы Nextcloud даже не пытается вычитать с файлового хранилища.

СУБД: PostgreSQL. Можно и MySQL, но на маленьких объемах, в противном случае диск с БД постоянно будет забит IO, плюс на MySQL сложнее реализовать Point-In-Time Recovery, а для S3 в качестве основного хранилища это критично, так как в случае потери БД нельзя будет выполнить occ rescan, он на S3 не работает.

Далее описан весь процесс миграции. Все действия выполняются на свой страх и риск.

Читать далее