Files
crm.clientright.ru/crm_extensions/file_storage/SETUP_CHECKLIST.md
Fedor 269c7ea216 feat: OnlyOffice Standalone integration with S3 direct URLs
 ЧТО СДЕЛАНО:
- Поднят новый 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)
2025-11-01 01:02:03 +03:00

6.9 KiB
Raw Blame History

Чек-лист настройки 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

  1. Открой https://n8n.clientright.pro
  2. Нажми "+"Import from File
  3. Выбери файл: /var/www/.../n8n_s3_monitor_workflow.json
  4. Нажми Import

Шаг 3: Настрой S3 Credentials в n8n

  1. В n8n иди в Settings (⚙️) → Credentials

  2. Нажми Add Credential → выбери AWS

  3. Заполни:

    • Name: TWC S3
    • Access Key ID: (из шага 1)
    • Secret Access Key: (из шага 1)
    • Region: ru-1
  4. Включи Custom Endpoints

  5. S3 Endpoint: https://s3.twcstorage.ru

  6. Включи Force Path Style

  7. Нажми Test → должно быть

  8. Save


Шаг 4: Настрой Redis Credentials в n8n

  1. Add CredentialRedis
  2. Заполни:
    • Name: CRM Redis
    • Host: 147.45.146.17
    • Port: 6379
    • Password: CRM_Redis_Pass_2025_Secure!
    • Database: 0
  3. Test
  4. Save

Шаг 5: Настрой workflow

  1. Открой импортированный workflow "S3 File Monitor"

  2. Кликни на ноду "List S3 Files"

  3. В поле Credential for AWS выбери TWC S3

  4. В поле Bucket Name:

    • Вариант 1: Впиши имя bucket из шага 1
    • Вариант 2: Оставь {{$env.S3_BUCKET}} и настрой env variable
  5. В поле Prefix (опционально):

    • Оставь пустым для мониторинга всего bucket
    • Или укажи папку, например: nextcloud/data/admin/files/
  6. Кликни на ноду "Publish to Redis"

  7. Выбери credential: CRM Redis

  8. Save workflow


Шаг 6: Активируй workflow

  1. Переключи тумблер Active в ON (вверху справа)
  2. 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

  1. В n8n → S3 File Monitor workflow
  2. Нажми Executions (внизу)
  3. Посмотри последние запуски
  4. Должны быть зелёные

Шаг 8: Настрой обработчик событий (опционально)

Создай новый workflow в n8n для обработки событий:

  1. Trigger: Redis (Subscribe)

    • Channel: crm:file:events
    • Credential: CRM Redis
  2. Filter по типу файла:

    // Обрабатываем только PDF
    return $json.filename.endsWith('.pdf');
    
  3. Твоя логика:

    • 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 будут автоматически:

  1. Обнаруживаться (каждые 30 сек)
  2. Публиковаться в Redis (crm:file:events)
  3. Доступны для обработки в n8n, CRM, и других сервисах

📚 Дополнительные файлы

  • S3_MONITORING_GUIDE.md - полное руководство
  • ARCHITECTURE.md - схема архитектуры
  • n8n_s3_monitor_workflow.json - workflow для импорта
  • get_s3_credentials.sh - скрипт для получения credentials

🆘 Нужна помощь?

Если что-то не работает:

  1. Проверь логи n8n executions
  2. Проверь Redis подключение
  3. Проверь S3 credentials
  4. Перечитай S3_MONITORING_GUIDE.md

Удачи! 🚀