✅ ЧТО СДЕЛАНО: - Поднят новый standalone OnlyOffice Document Server (порт 8083) - Настроен Nginx для доступа через office.clientright.ru:9443 - Создан open_file_v3_standalone.php для работы с новым OnlyOffice - Реализована поддержка прямых S3 URL (bucket публичный) - Добавлен s3_proxy.php с поддержкой Range requests - Создан onlyoffice_callback.php для сохранения (базовая версия) - Файлы успешно открываются и загружаются! ⚠️ TODO (на завтра): - Доработать onlyoffice_callback.php для сохранения обратно в ОРИГИНАЛЬНЫЙ путь в S3 - Добавить Redis маппинг documentKey → S3 path - Обновить CRM JS для использования open_file_v3_standalone.php - Протестировать сохранение файлов - Удалить тестовые файлы 📊 РЕЗУЛЬТАТ: - OnlyOffice Standalone РАБОТАЕТ! ✅ - Файлы открываются напрямую из S3 ✅ - Редактор загружается БЫСТРО ✅ - Автосохранение настроено ✅ (но нужна доработка callback)
6.9 KiB
✅ Чек-лист настройки S3 мониторинга
📋 Что нужно сделать
Шаг 1: Получи S3 Credentials ✅
cd /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage
bash get_s3_credentials.sh
Сохрани куда-нибудь:
- Access Key ID
- Secret Access Key
- Bucket name
- Endpoint:
https://s3.twcstorage.ru - Region:
ru-1
Шаг 2: Импортируй workflow в n8n ⏳
- Открой https://n8n.clientright.pro
- Нажми "+" → Import from File
- Выбери файл:
/var/www/.../n8n_s3_monitor_workflow.json - Нажми Import
Шаг 3: Настрой S3 Credentials в n8n ⏳
-
В n8n иди в Settings (⚙️) → Credentials
-
Нажми Add Credential → выбери AWS
-
Заполни:
- Name:
TWC S3 - Access Key ID: (из шага 1)
- Secret Access Key: (из шага 1)
- Region:
ru-1
- Name:
-
Включи
Custom Endpoints✅ -
S3 Endpoint:
https://s3.twcstorage.ru -
Включи
Force Path Style✅ -
Нажми Test → должно быть ✅
-
Save
Шаг 4: Настрой Redis Credentials в n8n ⏳
- Add Credential → Redis
- Заполни:
- Name:
CRM Redis - Host:
147.45.146.17 - Port:
6379 - Password:
CRM_Redis_Pass_2025_Secure! - Database:
0
- Name:
- Test → ✅
- Save
Шаг 5: Настрой workflow ⏳
-
Открой импортированный workflow "S3 File Monitor"
-
Кликни на ноду "List S3 Files"
-
В поле Credential for AWS выбери
TWC S3 -
В поле Bucket Name:
- Вариант 1: Впиши имя bucket из шага 1
- Вариант 2: Оставь
{{$env.S3_BUCKET}}и настрой env variable
-
В поле Prefix (опционально):
- Оставь пустым для мониторинга всего bucket
- Или укажи папку, например:
nextcloud/data/admin/files/
-
Кликни на ноду "Publish to Redis"
-
Выбери credential:
CRM Redis -
Save workflow
Шаг 6: Активируй workflow ⏳
- Переключи тумблер Active в ON (вверху справа)
- Workflow начнёт работать!
Первый запуск:
- Создаст начальное состояние файлов
- НЕ сгенерирует события (это нормально!)
Последующие запуски (каждые 30 сек):
- Будут сравнивать с предыдущим состоянием
- Генерировать события при изменениях
Шаг 7: Протестируй! 🧪
Тест 1: Загрузи файл в S3
Через S3 Browser или aws-cli:
echo "test content" > /tmp/test-file.txt
aws s3 cp /tmp/test-file.txt s3://ИМЯ-BUCKET/test-file.txt \
--endpoint-url https://s3.twcstorage.ru
Тест 2: Подожди 30 секунд
⏱️ Время для следующего polling цикла...
Тест 3: Проверь Redis
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \
--csv SUBSCRIBE crm:file:events
Должно прийти:
"subscribe","crm:file:events",1
"message","crm:file:events","{\"type\":\"file_created\",\"source\":\"s3_monitor\",...}"
Тест 4: Проверь n8n executions
- В n8n → S3 File Monitor workflow
- Нажми Executions (внизу)
- Посмотри последние запуски
- Должны быть ✅ зелёные
Шаг 8: Настрой обработчик событий (опционально) ⏳
Создай новый workflow в n8n для обработки событий:
-
Trigger: Redis (Subscribe)
- Channel:
crm:file:events - Credential:
CRM Redis
- Channel:
-
Filter по типу файла:
// Обрабатываем только PDF return $json.filename.endsWith('.pdf'); -
Твоя логика:
- Download from S3
- Process
- Upload to CRM
- Notify user
🔧 Troubleshooting
❌ Workflow не запускается
- Проверь что он Active (зелёная галочка)
- Проверь Executions → есть ли ошибки?
❌ S3 Connection failed
- Проверь credentials (Access Key, Secret)
- Проверь что включен
Force Path Style✅ - Проверь endpoint:
https://s3.twcstorage.ru
❌ Redis Connection failed
- Проверь firewall: порт 6379 открыт?
- Проверь пароль:
CRM_Redis_Pass_2025_Secure! - Попробуй из терминала:
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' PING
❌ События не приходят
- Убедись что файл добавлен в правильный bucket
- Убедись что файл в нужной папке (если указан Prefix)
- Подожди 30 секунд для polling цикла
- Проверь Static Data в workflow (сохраняется ли состояние?)
⚠️ Слишком много событий
- Уменьши область мониторинга через
Prefix - Увеличь интервал до 60-120 секунд
📊 Финальная проверка
После всех шагов у тебя должно быть:
- ✅ S3 credentials сохранены в n8n
- ✅ Redis credentials сохранены в n8n
- ✅ Workflow "S3 File Monitor" импортирован
- ✅ Workflow активирован (Active = ON)
- ✅ Тестовый файл загружен в S3
- ✅ Событие пришло в Redis канал
crm:file:events - ✅ Execution в n8n показывает ✅ success
🎉 Готово!
Теперь любые изменения в твоём S3 bucket будут автоматически:
- Обнаруживаться (каждые 30 сек)
- Публиковаться в Redis (
crm:file:events) - Доступны для обработки в n8n, CRM, и других сервисах
📚 Дополнительные файлы
S3_MONITORING_GUIDE.md- полное руководствоARCHITECTURE.md- схема архитектурыn8n_s3_monitor_workflow.json- workflow для импортаget_s3_credentials.sh- скрипт для получения credentials
🆘 Нужна помощь?
Если что-то не работает:
- Проверь логи n8n executions
- Проверь Redis подключение
- Проверь S3 credentials
- Перечитай
S3_MONITORING_GUIDE.md
Удачи! 🚀