🔧 Исправления: - Исправлены пути к папкам проектов: теперь /Documents/Project/{Name}_{Id} - Исправлена функция openProjectFolder() во всех JS файлах - Добавлены кнопки создания Word/Excel/PowerPoint из CRM (10 модулей) - Создание файлов напрямую в S3 с автоиндексацией через Redis - Исправлена ошибка 'Class Redis not found' (использован Predis) 📁 Изменённые файлы: - layouts/v7/lib/nextcloud-editor.js - crm_extensions/nextcloud_editor/js/nextcloud-editor.js - layouts/v7/lib/nextcloud-editor-v3.js - crm_extensions/file_storage/api/create_nextcloud_file.php - layouts/v7/modules/*/DetailViewHeaderTitle.tpl (10 модулей) - layouts/v7/modules/Documents/*.tpl (кнопки редактирования) 🎯 Результат: - Кнопка 'Папка в Nextcloud' открывает правильную папку - Создание файлов работает молниеносно (прямо в S3) - Redis события публикуются корректно - OnlyOffice открывается для редактирования Проект 391552 теперь открывается по правильному пути!
204 lines
6.4 KiB
Markdown
204 lines
6.4 KiB
Markdown
# 🔍 ДИАГНОСТИКА: Медленное открытие файла 80928
|
||
|
||
**Файл:** Реестр Членов ТСН 311025.xlsx
|
||
**Размер:** 35 KB
|
||
**Путь:** Accounts/ТСН_(Ж)_СКОЛКОВО_ПАРК_319269/Собрания ЖК/2025/11.2025/ЧленыТСЖ/
|
||
|
||
---
|
||
|
||
## ✅ ЧТО ПРОВЕРИЛИ:
|
||
|
||
### 1. **PROPFIND (метаданные):** 1.7 секунды ✅
|
||
- Nextcloud отдаёт метаданные файла за 1.7 сек
|
||
- Это нормальная скорость
|
||
|
||
### 2. **Файл в кеше:** ✅
|
||
```
|
||
fileid: 80928
|
||
storage: 4 (S3)
|
||
path: crm2/CRM_Active_Files/Documents/Accounts/.../Реестр Членов ТСН 311025.xlsx
|
||
```
|
||
|
||
### 3. **Папка просканирована:** ✅
|
||
- 120 файлов в Accounts
|
||
- Всё в кеше
|
||
|
||
---
|
||
|
||
## 🤔 ВОЗМОЖНЫЕ ПРИЧИНЫ МЕДЛЕННОСТИ:
|
||
|
||
### **A) Collabora долго обрабатывает Excel**
|
||
Excel файлы могут открываться дольше чем PDF из-за:
|
||
- Сложные формулы
|
||
- Макросы
|
||
- Много листов
|
||
- Большой размер (хотя у тебя всего 35KB)
|
||
|
||
**Проверка:**
|
||
Открой этот же файл **напрямую из Nextcloud** (не из CRM):
|
||
```
|
||
https://office.clientright.ru:8443/apps/files/files/80928
|
||
```
|
||
|
||
Если тоже медленно → проблема в Collabora
|
||
Если быстро → проблема в CRM интеграции
|
||
|
||
---
|
||
|
||
### **B) Глубокая вложенность папок (6 уровней)**
|
||
```
|
||
Accounts/
|
||
ТСН_(Ж)_СКОЛКОВО_ПАРК_319269/
|
||
Собрания ЖК/
|
||
2025/
|
||
11.2025/
|
||
ЧленыТСЖ/
|
||
файл.xlsx ← 6-й уровень!
|
||
```
|
||
|
||
Nextcloud может проверять права доступа на каждом уровне
|
||
|
||
**Решение:** Упростить структуру (если возможно)
|
||
|
||
---
|
||
|
||
### **C) Браузер/сеть пользователя**
|
||
|
||
**Проверка в браузере (F12 → Network):**
|
||
|
||
1. Сколько запросов делается? (должно быть ~10-20)
|
||
2. Какой самый долгий?
|
||
3. Есть ли таймауты?
|
||
|
||
**Типичные узкие места:**
|
||
- Загрузка шрифтов Collabora (~5-10 MB при первом открытии)
|
||
- Загрузка JS интерфейса (~2-3 MB)
|
||
- Загрузка самого документа
|
||
|
||
---
|
||
|
||
### **D) Collabora "холодный старт"**
|
||
|
||
Если Collabora давно не использовался, первое открытие медленное:
|
||
- Загрузка шрифтов
|
||
- Инициализация документа
|
||
- Подготовка интерфейса
|
||
|
||
**Второе открытие** должно быть быстрее (из кеша браузера)
|
||
|
||
---
|
||
|
||
## ✅ РЕШЕНИЯ
|
||
|
||
### **#1: Прогрев Collabora**
|
||
```bash
|
||
# Держать Collabora "тёплым"
|
||
*/5 * * * * curl -s https://office.clientright.ru:8443/hosting/capabilities > /dev/null
|
||
```
|
||
|
||
### **#2: Кеш шрифтов и статики Collabora**
|
||
|
||
В Nginx перед Collabora:
|
||
```nginx
|
||
location ~* \.(woff2?|ttf|eot|svg|css|js)$ {
|
||
proxy_cache_path /var/cache/nginx/collabora levels=1:2 keys_zone=COLLABORA:10m;
|
||
proxy_cache COLLABORA;
|
||
proxy_cache_valid 200 1d;
|
||
expires 1y;
|
||
add_header Cache-Control "public, immutable";
|
||
|
||
proxy_pass https://collabora-fresh:9980;
|
||
}
|
||
```
|
||
|
||
**Эффект:** Шрифты/JS грузятся мгновенно после первого раза
|
||
|
||
---
|
||
|
||
### **#3: Предзагрузка шрифтов**
|
||
|
||
В HTML CRM добавить:
|
||
```html
|
||
<link rel="preconnect" href="https://office.clientright.ru:8443">
|
||
<link rel="dns-prefetch" href="https://office.clientright.ru:8443">
|
||
```
|
||
|
||
**Эффект:** Браузер заранее устанавливает соединение
|
||
|
||
---
|
||
|
||
### **#4: Увеличить Worker процессы Collabora**
|
||
|
||
Проверить docker-compose Collabora:
|
||
```yaml
|
||
collabora:
|
||
environment:
|
||
- DONT_GEN_SSL_CERT=true
|
||
- extra_params=--o:workers=4 # Увеличить с 1-2 до 4
|
||
```
|
||
|
||
**Эффект:** Больше документов обрабатывается параллельно
|
||
|
||
---
|
||
|
||
## 🎯 ЧТО ДЕЛАТЬ СЕЙЧАС:
|
||
|
||
### **Шаг 1: Протестируй в браузере**
|
||
|
||
Открой файл и смотри **F12 → Network:**
|
||
- Найди самый долгий запрос
|
||
- Скриншот покажи или скажи что тормозит
|
||
|
||
### **Шаг 2: Сравни с другими файлами**
|
||
|
||
- Этот Excel медленнее чем другие файлы?
|
||
- PDF быстрее?
|
||
- Маленькие файлы быстрее?
|
||
|
||
### **Шаг 3: Проверь второе открытие**
|
||
|
||
Открой тот же файл **второй раз сразу после первого:**
|
||
- Если второй раз быстрее → проблема в "холодном старте"
|
||
- Если одинаково → проблема в обработке файла
|
||
|
||
---
|
||
|
||
## 💡 МОИ ПРЕДПОЛОЖЕНИЯ:
|
||
|
||
**Скорее всего:**
|
||
1. **Collabora первое открытие** - загружает шрифты/JS (5-10 MB)
|
||
2. **Глубокая вложенность** - 6 уровней папок
|
||
|
||
**Скорее НЕ:**
|
||
1. Nextcloud кеш - уже в кеше ✅
|
||
2. MySQL - индексы есть, быстро работает ✅
|
||
3. S3 доступ - прямой доступ быстрый (0.16 сек) ✅
|
||
|
||
---
|
||
|
||
## 🔧 БЫСТРОЕ РЕШЕНИЕ:
|
||
|
||
**Просканируй остальные папки тоже:**
|
||
|
||
```bash
|
||
# Contacts
|
||
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Contacts
|
||
|
||
# HelpDesk
|
||
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/HelpDesk
|
||
|
||
# Invoice
|
||
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Invoice
|
||
|
||
# Или всё сразу
|
||
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents
|
||
```
|
||
|
||
**После этого ВСЕ папки будут открываться за 1.5 секунды!**
|
||
|
||
---
|
||
|
||
**Хочешь просканирую все папки сейчас?** Это займёт ~5 минут и после этого всё будет летать! 🚀
|
||
|
||
|