LINUX.ORG.RU
ФорумAdmin

Проблема с обновлением Эскизов Nextcloud по https://

 


1

2

Добрый день.

Версия: Nextcloud Hub 9 (30.0.0) (apache)

Установил сервис nextcloud на 3 виртуальные машины NexCloud+Proxy+OnlyOffice, в nextCloud подключил шару внешнего хранилища по smb. Работа офиса складывается таким образом, внутренние сотрудники работают напрямую с шарой, а есть внешние, которые работают только через HTTPS://. И все бы ничего, но я столкнулся с проблемой:

  1. внутренний сотрудник создает каталог на шаре (через smb) и кладет туда файлы изображений.
  2. внешний сотрудник заходит на нее через HTTPS, в этот момент формируются эскизы этих изображений у внешнего. И вроде бы все хорошо, НО.
  3. в течении рабочего дня внутренний сотрудник вносит правки в изображения и кладет их в тот же каталог с теми же именами путем замены. Внешний сотрудник снова под своей УЗ заходит через HTTPS:// и видит старые эскизи(до правок) и предпросмотр также без внесенных изменений. Но если удаленщик скачает файл к себе на локальную машину, то файл скачивается верный со всеми правкам. И если он через интерфейс браузера закачает его обратно с заменой, то превью изменится.

Как побороть эту проблему я не понимаю.

  1. Фоновые задания через cron настроил выполняются (*/5 * * * * php -f /var/www/html/nextcloud/cron.php)
  2. Индексацию файлов (sudo -u www-data php occ files:scan –all) руками делал
  3. установил и настроил, c заданием, app Preview Generator ( */10 * * * * php /var/www/html/nextcloud/occ preview:pre-generate)
  4. Запуск браузера со сброшенным кещем или инкогнито не дают результата.
  5. Вход мимо ReverceProxy (думал, что он кеширует), напрямую на NextCloud, так же не приносят желаемого результата.

Причем, если я сделаю УЗ для нового удаленщика и он при первом входе провалится в этот каталог , то все превью формируются корректно, но опять же до первого изменения файла внутренним сотрудников (когда он положит его в сетевую шару.) Далее опять начинаются проблемы).

Есть ли настройка, чтобы при каждом входе превью файлов(эскизы) формировались каждый раз заново?

Перемещено hobbit из general



Последнее исправление: HravnDE (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Уффф. ‘filesystem_check_changes’ => 0, Specifies how often the local filesystem (the Nextcloud data/ directory, and NFS mounts in data/) is checked for changes made outside Nextcloud. This does not apply to external storage.

0 -> Never check the filesystem for outside changes, provides a performance increase when it’s certain that no changes are made directly to the filesystem

1 -> Check each file or folder at most once per request, recommended for general use if outside changes might happen.

Defaults to 0

‘filesystem_check_changes’ => 1 добавлял, не помогает. Превью старые, а если файл скачиваешь ,то нормальный локально на ПК открывается).

Пробовал монтировать smb, nfs в nextcloud/data/share, публиковал как локальное хранилище ,но все равно не меняется ничего. Думал, что поможет, но нет. У меня внутренние дизайнеры часто публикуют материал, а внешние редакторы ничего не видят вовремя. А быстродействия в обновлении не могу добиться.

HravnDE
() автор топика

[Теоретически] Согласно ссылке должен сработать костыль в виде самописного скрипта на машине с NC, который мониторит изменившиеся файлы и улаляет их превью, тогда система при запросе будет его генерировать заново.

П.С. наверное можно сделать сразу же и регенерацию превьюшки при изменении файла

Jurik_Phys ★★★★★
()

Всё это очень ненадёжно работает. Тоже имею подключенную к nc шару через external storage. Постоянные проблемы с синхронизацией состояния, особенно, если кто-то пишет по подключенной хранилище напрямую.

aol ★★★★★
()

Так, а если:

  1. Удаленщик заходит в первый раз, формирует превью
  2. Меняем файл
  3. Удаленщин заходит, видит старое превью
  4. Удаленщик заходит с чистого профиля браузера или чистит кеш

Может это браузер локально кеширует и больше заново не загружает? У него ж на картинку таймер Expires стоит

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Может это браузер локально кеширует и больше заново не загружает?

ТС же в описании проблемы пишет, что

Запуск браузера со сброшенным кещем или инкогнито не дают результата.

Jurik_Phys ★★★★★
()
Ответ на: комментарий от PPP328

Добрый день. На всякий случай. Схема такая

Дизайнеры - NasQNAP(Dizashare) - Nextcloud (Подключаем Dizshare используя External storage support) - WEB (внешние редакторы)

Что пробовал: 1.подключать как SMB/CIFS. 2.монтировал NFS в /var/www/html/nextcloud/data/share

Ситуация:

  1. дизайнер создает файл(изображение) в Dizashare
  2. Внешний редактор через web заходит, формируется эскиз согласно изображению и , вроде бы , все в норме. Но!
  3. дизайнер вносит изменение у себя на пк в это изображение и с этим же именем , путем замены, кладет файл Dizashare.
  4. Внешний редактор снова заходит через web в хтот каталог и не видит никаких изменений, как в Эскизе, так и превью когла пытается просмотреть изображение в web интерфесе. Прбовали в другом браузере открывать, режим инкогнито. Но ничего не происходит. 5 . если я создам новую УЗ для нового внешнего редактора и он провалится по web(с другого браузера, другого ПК) в этот же каталог, то видит перед собой так же не обновленные файлы. НО если эти файлы скачать себе на пк, то скачиваются они правильные с изменениями, и если далее через WEB залить их обратно на Dizashare, то эскиз и отображение меняется на верное.

Тут явно проблема в кеше БД, или не отработке запроса на изменение при обновлении страницы.

Да есть sudo -u www-data php occ files:scan –all, Но обно делао, когда файлов на 2-3Гб, а когда их на 150Гб? у меня сейчас Dizashare примерно 52Гб и 53 удаленщика и occ files:scan делается 60-70 минут) а за это время уже изменений внесли тучу) тут же нужно делать еще ра occ files:scan и т.д. Было бы идеально если бы при каждом запросе обновлялся и кеш и страница, уже пофиг на количествой запросов, думаю. Но ‘filesystem_check_changes’ => 1 не работает, и я , пожоже , не до конца понимаю логику применения этой опции (NFS смотриванный в ../nextcloud/data/share является для NС нормальным внутренним каталогом, или он по прежнему как внешний?)

Может я не так смотритовал? Может версия NC 30.0.0 глючная? Может ‘filesystem_check_changes’ => 1 нужно написать в какое-то четко определенное место в Config?

HravnDE
() автор топика

Добрый день. Может кому интересно будет до чего дошли мои упражнения с Nextcloud. Как планировалось изначально. Есть сетевое хранилище и ресурс, который я подключу к NextCloud как внешнее хранилище. Внутренние сотрудники(дизайнеры) будут работать напрямую с шарой, а удаленные Редакторы через WEB. И пара условий важных условий взаимодействию.

  1. Дизайнерам (внутренним сотрудникам) сетевой (общий) каталог нужен для того, чтобы наёмную вносить изменения в файлы с помощью спец ПО. Web для них неприемлем, т.е. только подключённый сетевой диск или линк на сетевой ресурс.
  2. Для меня важно, чтобы внешние сотрудники попадали на сервис через web (Логин+пароль+2-й фактор. Для 2-го фактора я использовал totp.). До этого была связка OVPN+RDP. С этой схемой намучался в плане настройки (куча разных ОС, начиная от WinXP до Win11, не считая MacOS.) А из опыта 80% редактором, которых берут на работу, зачастую, даже AnyDesk запустить не могут из-за квалификации. В последствии наложились еще проблемы с провайдерами и РКН, которые методично вставляют палки в работу. Ну а Инструкция по настройке OVPN на ПК вообще оказалась смертеподобной для внешних.

В какой-то момент у меня накопилось вместо 5-ти внешних сотрудников 52 по всей России, и я уже стал тратить 60-80 % рабочего и внерабочего времени на помощь. Проблемы разные, начиная «у меня интернет есть, значок светится, а VPN не подключается до «у меня пропал ярлык и теперь нужна ваша помощь в повторной настройке» и т.д. недолго думая, прочитав пару статей решил, что настрою облачный сервис, напишу одностраничную инструкцию как открыть Web Browser, ввести адрес сайта, ввести логин/пароль + отсканировать QR и будет мне счастье, но не тут-то было.

Схема  -  Дизайнеры <> Share (NAS)<>NC (Share Подключена  по SMB используя APP NC)<>Внешние сотрудники, заработала нормально до того момента как только Дизайнеры не начали интенсивно менять содержимое в Share (Постоянная верстка страниц, добрасывание новой информации и т.д. , а  этот момент Редакторы уже не видели никаких изменений, правка руками внутренних каталогов (перезалив информации через интерфейс NC превратился в мое проклятье). Фоновые задания через cron (*/5 * * * * php -f /var/www/html/nextcloud/cron.php), запуск sudo -u www-data php occ files:scan –all, установка 'filesystem_check_changes' => 1 не спасли мен, от слова  совсем. В какой-то момент occ files:scan –all уже стал выполняться от 1 часа. К тому что залитые файлы, напрямую на Share, не отображались у внешних сотрудников, так еще и превью стали не валидными, из-за того, что правки вносятся в файл, имя остается тоже самое, суть внутри уже поменялась, и, естественно, NC ничего не видит. 

Оттолкнувшись от идеи, что все должно работать, используя средства NC, решил установить всем внутри организации NC Client, и после установки 3-го получил 100% загрузку процессора на NAS при синхронизации списка файлов. Вышел из этой ситуации монтированием NFS ресурса в /data/share и подключением как локальный на NC. После теста на этих трех машинах пришла идея сделать еще 1 джампхост на WinServer и просто пожертвовать местом для полной синхронизации Nas(Share) c помощью NC Client, сделать его общедоступным и выбросить через GPO по всем машинам без установки клиента на каждую. В итоге полет, пока, нормальный. Единственное, пришлось пожертвовать 2 CPU и 100Gb на диске. Сейчас все эти манипулции мою проблему решили, все, так или иначе, работают , используюя либо webNC, либо Share, Которую синхронит WinClient NC.

HravnDE
() автор топика
Ответ на: комментарий от HravnDE

Правильно я понял, что сделали что-то вроде proxy, которое «одним концом» синхронизирует список файлов с NC через клиент NC, а «другим концом» даёт доступ к файлам для редакторов из внутренней сети?

П.С. выглядит, как костыль. Советую не полениться и запилить bug report

Jurik_Phys ★★★★★
()
Ответ на: комментарий от Jurik_Phys

Добрый день. ну, в целом , да.

Для внешних подключение выглядит так:

Web(внешнего клиента)>NGINX Reverse Proxy>NC>Nas(Share)

Для внутренних:

Проводник(Подключённые сетевой диск или ярлык на рабочем столе) > Windows 2019(NC_App_Cient(синхронизирует полностью каталог себе на локальный диск, и в этот каталог дан общий доступ для внутренних, с учетом AD) > NC > Nas(Share)

HravnDE
() автор топика