229 lines
6.9 KiB
Markdown
229 lines
6.9 KiB
Markdown
|
|
# ✅ Чек-лист настройки S3 мониторинга
|
|||
|
|
|
|||
|
|
## 📋 Что нужно сделать
|
|||
|
|
|
|||
|
|
### Шаг 1: Получи S3 Credentials ✅
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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 Credential** → **Redis**
|
|||
|
|
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**:
|
|||
|
|
```bash
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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** по типу файла:
|
|||
|
|
```javascript
|
|||
|
|
// Обрабатываем только 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!`
|
|||
|
|
- Попробуй из терминала:
|
|||
|
|
```bash
|
|||
|
|
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`
|
|||
|
|
|
|||
|
|
**Удачи!** 🚀
|
|||
|
|
|