Я хочу настроить Nextcloud как безопасное частное персональное облако. Оно должно обслуживать мои данные на разных типах устройств: с одной стороны, ноутбуки и смартфоны, где я хочу просто использовать клиент Nextcloud для синхронизации. Но у меня также есть настольный компьютер в моей локальной сети. Здесь локальная копия не нужна. Я даже хочу избежать этого, потому что на этом ПК есть только SSD, а мой Nextcloud будет размером около ~120 ГБ.
Раньше я использовал DSM поверх Xpenology, который предлагает SMB/CIFS-общие ресурсы. Это работает хорошо и стабильно на моем рабочем столе: я просто монтировал общие ресурсы, и все работало хорошо. К сожалению, Nextcloud, похоже,возможность использования SMB/CIFS только в качестве внешнего хранилища на стороне сервера.
Итак, мой вопрос: как я могу получить доступ к своим файлам Nextcloud локально без облачной синхронизации?
Мысли о решениях
Что насчет WebDAV?
В принципе, это похоже на замену SMB. Но по моему опыту из прошлого, WebDAV кажется медленным и не таким стабильным, как SMB. Я думаю, что на больших файлах WebDAV будет медленнее, так как для их открытия потребуется сначала загрузить файл hole (кажется, WebDAV основан на протоколе HTTP).
Обновлять:Я поигрался с WebDAV на Nextcloud. Его было легко настроить с момента его создания. Но, как я и думал, я столкнулся с проблемами: например, фильм не мог воспроизводиться через WebDAV. Я получил ошибку «Неверный дескриптор файла» в Nextcloud. Похоже, что это невозможно с помощью WebDAV. Мне пришлось бы сначала загрузить файл локально, что требует больше работы и приводит к мусорным данным на клиенте, когда я забываю удалить локальную копию после просмотра. SMB мог бы сделать это гораздо лучше.
Танцуете самбу?
Моей первой идеей было просто запустить свой собственный сервер Samba. Используя LDAP для Nextcloud и Samba, не было бы беспорядка с избыточными учетными записями для этих двух служб. Однако я столкнулся бы с другой проблемой: Samba обходит логику Nextcloud. Это привело бы не только к отсутствию истории версий. Я также заметил, что Nextcloud просто отслеживает файлы, которые были загружены клиентом Nextcloud. Размещение файла в файловой системе Nextcloud не привело бы к их появлению в веб-интерфейсе Nextcloud.
Таким образом, отказ от Nextcloud с использованием специального SMB-клиента, похоже, создает больше проблем, чем решает.
решение1
Как получить локальный доступ к файлам Nextcloud без облачной синхронизации?
Вы этого не делаете. Просто так сервис не работает. Как вы уже обнаружили, вы действительно можете получить доступ к базовому хранилищу. Однако это обходит все Nextcloud, и вы можете вообще прекратить его использовать.
Поскольку такие сервисы, как ownCloud, Nextcloud или Pydio, разработаны как независимые от файловой системы, они не слишком полагаются на функции файловой системы, такие как ACL и хранилище метаданных, а вместо этого реализуют эти функции самостоятельно. Если файловая система рассинхронизируется с хранилищем метаданных, обязательно произойдут странные вещи.
В зависимости от ваших реальных требований (в основном: просмотр через браузер или даже управление через браузер) вы можете вместо этого использовать решение только для синхронизации, например syncthing. Оно также совместимо с Samba.
Затем есть альтернативные клиенты WebDAV, которые могут быть или не быть менее отстойными. Быстрый поиск выдал ExpanDrive, который является коммерческим программным обеспечением.
Seafile (аналог Nextcloud) предлагает «клиент Seafile Drive», который отображается как диск в Windows:https://blogs.seafile.com/2016/09/02/announcing-seafile-drive-client-a-new-way-to-map-seafile-storage-as-virtual-drive/
Клиент диска поддерживается в бесплатной версии сообщества. Однако я обнаружил, что Seafile сложно настроить. Он гораздо сложнее Nextcloud. Есть несколько рабочихИнструмент Докерахотя доступно.
решение2
На самом деле, предыдущий ответ от @Daniel B и комментарий от @Insanemal неверны. Вы определенно можете иметь сервер NextCloud и подключиться к нему с помощью Samba/CFIS.
Для этого установите NextCloud в соответствии с официальными инструкциями NextCloud. Я предпочитаю использовать NextCloud AIO. NextCloud AIO — это Dockerized, его легко перенести на другую машину, если это необходимо, и т. д. После того, как NextCloud будет запущен, вам нужно установить iNotifyScan. Он просканирует ваш диск и будет занимать очень мало места на вашем сервере. Таким образом, когда вы добавляете, удаляете, обновляете, перемещаете, копируете и т. д. с помощью Samba, iNotifyScan обновит базу данных NextCloud, чтобы показать изменения. iNotifyScan действительно легко установить. Мне потребовалось меньше пяти минут, чтобы установить и настроить.
Вот статья, которую я нашел, с подробными инструкциями по установке iNotifyScan. Установка и настройка займут у вас < 10 минут. https://www.bitproof.co.uk/post/setting-up-inotifyscan-for-your-nextcloud-server