infra/@beget-s3.storage/ARCHITECTURE.md

АРХИТЕКТУРА S3 ПАПКИ: КТО ГДЕ РАБОТАЕТ

⚠️ УСТАРЕЛО: Этот документ описывает старую структуру nomenclature/.
Актуальная структура S3 Hub: DATA-FLOW.md

Дата: 2025-11-17
Версия: 1.0 (ARCHIVED)


🎯 ГЛАВНОЕ ПОНИМАНИЕ

Критично понять:
- Claude Code работает на СЕРВЕРЕ → пишет в /mnt/beget-s3/
- Пользователь работает на ЛОКАЛЬНОМ КОМПЬЮТЕРЕ → читает из ~/beget-s3/
- Между ними S3 облако Beget → автоматически синхронизирует файлы


🏗️ ПОЛНАЯ СХЕМА АРХИТЕКТУРЫ

┌──────────────────────────────────────────────────────────────────────┐
│                          S3 BEGET ОБЛАКО                              │
│                                                                       │
│  Bucket: fe2c1d30dc11-s3-0kt                                          │
│  Region: ru-1                                                         │
│  Endpoint: https://s3.ru1.storage.beget.cloud                         │
│                                                                       │
│  Хранит файлы физически (дата-центр в России)                         │
└──────────────────────────────────────────────────────────────────────┘
                              ↑                    ↑
                              │                    │
                      rclone mount           rclone mount
                      (FUSE FS)              (FUSE FS)
                              │                    │
┌─────────────────────────────┴────────┐  ┌────────┴──────────────────────┐
│         СЕРВЕР                        │  │   ЛОКАЛЬНЫЙ КОМПЬЮТЕР          │
│  (где работает Claude Code)           │  │   (где работает пользователь)  │
│                                       │  │                                │
│  IP: 91.218.142.168                   │  │  IP: домашний IP               │
│  ОС: Linux Ubuntu                     │  │  ОС: Linux (или Windows)       │
│  Пользователь: root                   │  │  Пользователь: твой username   │
│                                       │  │                                │
│  📁 Mount point:                      │  │  📁 Mount point:               │
│     /mnt/beget-s3/                    │  │     ~/beget-s3/  (Linux)       │
│                                       │  │     Z:\          (Windows)      │
│                                       │  │                                │
│  🤖 Claude Code здесь:                │  │  👤 Пользователь здесь:        │
│     - Создаёт файлы                   │  │     - Читает файлы             │
│     - Копирует результаты             │  │     - Скачивает на диск        │
│     - Генерирует отчёты               │  │     - Загружает данные         │
│     - Размещает в /mnt/beget-s3/      │  │     - Открывает в программах   │
│                                       │  │                                │
│  Пример:                              │  │  Пример:                       │
│  cp data/report.xlsx \                │  │  xdg-open ~/beget-s3/\         │
│     /mnt/beget-s3/nomenclature/       │  │            nomenclature/\      │
│                                       │  │            report.xlsx         │
└───────────────────────────────────────┘  └────────────────────────────────┘

📍 КТО ГДЕ НАХОДИТСЯ

1. СЕРВЕР (где Claude Code)

Расположение: Дата-центр в Европе
IP: 91.218.142.168
Hostname: xirfbwpmvt.timeweb.cloud
ОС: Ubuntu Linux 22.04

Что на сервере:

$WORKSPACE/        - Workspace Claude Code
/mnt/beget-s3/                - Точка монтирования S3 папки
/root/.config/rclone/         - Конфигурация rclone

Claude Code видит S3 папку как:

/mnt/beget-s3/
├── nomenclature/
│   └── changes_only.xlsx      Claude положил сюда файл
├── NAMING_PROPOSAL.md         Claude создал документ
└── DIRECT_LINKS.md            Claude сгенерировал ссылки

Когда Claude создаёт файл:

# Claude выполняет на СЕРВЕРЕ:
cp data/report.xlsx /mnt/beget-s3/nomenclature/

# Файл появляется:
# 1. Сначала в локальном кэше rclone
# 2. Затем загружается в S3 облако (секунды)
# 3. Становится доступен на твоём компьютере (почти мгновенно)

2. ЛОКАЛЬНЫЙ КОМПЬЮТЕР (где пользователь)

Расположение: Твой дом / офис
IP: Твой домашний IP (динамический)
ОС: Linux (или Windows)

Что на компьютере:

~/.config/rclone/             - Конфигурация rclone (такая же как на сервере)
~/beget-s3/                   - Точка монтирования S3 папки (Linux)
Z:\                           - Точка монтирования S3 папки (Windows)

Пользователь видит S3 папку как:

~/beget-s3/  (или Z:\ на Windows)
├── nomenclature/
│   └── changes_only.xlsx      Ты видишь файл от Claude
├── NAMING_PROPOSAL.md         Ты можешь открыть и прочитать
└── DIRECT_LINKS.md            Ты можешь скопировать ссылки

Когда ты открываешь файл:

# Ты выполняешь на ЛОКАЛЬНОМ КОМПЬЮТЕРЕ:
xdg-open ~/beget-s3/nomenclature/changes_only.xlsx

# Что происходит:
# 1. rclone проверяет есть ли файл в локальном кэше
# 2. Если нет - скачивает из S3 облака
# 3. Открывает в программе (LibreOffice, Excel, etc.)

3. S3 BEGET ОБЛАКО (посередине)

Расположение: Дата-центр Beget в России
Регион: ru-1
Endpoint: https://s3.ru1.storage.beget.cloud
Bucket: fe2c1d30dc11-s3-0kt

Что в облаке:
- Физическое хранилище файлов
- Все файлы хранятся здесь постоянно
- Доступно 24/7 с любой машины
- Автоматическое резервирование (надёжность)

Структура в облаке:

s3://fe2c1d30dc11-s3-0kt/
├── nomenclature/
│   └── changes_only.xlsx      ← Физически хранится здесь
├── data/
├── index/
├── keys/
├── snapshots/
├── NAMING_PROPOSAL.md         ← Физически хранится здесь
├── S3_FOLDER_NAMING_CONFIRMED.md
└── DIRECT_LINKS.md

🔄 КАК РАБОТАЕТ СИНХРОНИЗАЦИЯ

Поток данных: Сервер → Пользователь

1. Claude Code создаёт файл на СЕРВЕРЕ
   ┌────────────────────────────────────┐
    cp data/report.xlsx                
       /mnt/beget-s3/nomenclature/     
   └────────────────────────────────────┘
                   
2. rclone (на сервере) загружает в S3
   ┌────────────────────────────────────┐
    /mnt/beget-s3/nomenclature/        
    report.xlsx                        
   └────────────────────────────────────┘
                    (через интернет)
3. S3 облако принимает файл
   ┌────────────────────────────────────┐
    s3://bucket/nomenclature/          
    report.xlsx                        
   └────────────────────────────────────┘
                    (мгновенно)
4. rclone (на локальном компьютере) видит новый файл
   ┌────────────────────────────────────┐
    ~/beget-s3/nomenclature/           
    report.xlsx                        
   └────────────────────────────────────┘
                   
5. Пользователь открывает файл
   ┌────────────────────────────────────┐
    xdg-open ~/beget-s3/nomenclature/  
            report.xlsx                
   └────────────────────────────────────┘

Время синхронизации: 1-5 секунд (зависит от размера файла и интернета)


Поток данных: Пользователь → Сервер

1. Пользователь копирует файл на ЛОКАЛЬНОМ КОМПЬЮТЕРЕ
   ┌────────────────────────────────────┐
    cp ~/Downloads/data.xlsx           
       ~/beget-s3/nomenclature/        
   └────────────────────────────────────┘
                   
2. rclone (на компьютере) загружает в S3
   ┌────────────────────────────────────┐
    ~/beget-s3/nomenclature/           
    data.xlsx                          
   └────────────────────────────────────┘
                    (через интернет)
3. S3 облако принимает файл
   ┌────────────────────────────────────┐
    s3://bucket/nomenclature/          
    data.xlsx                          
   └────────────────────────────────────┘
                    (мгновенно)
4. rclone (на сервере) видит новый файл
   ┌────────────────────────────────────┐
    /mnt/beget-s3/nomenclature/        
    data.xlsx                          
   └────────────────────────────────────┘
                   
5. Claude Code обрабатывает файл
   ┌────────────────────────────────────┐
    python process.py                  
      /mnt/beget-s3/nomenclature/      
      data.xlsx                        
   └────────────────────────────────────┘

📊 ТАБЛИЦА: КТО ЧТО ДЕЛАЕТ

Действие Где выполняется Кто выполняет Путь
Создать отчёт Excel Сервер Claude Code /mnt/beget-s3/nomenclature/
Положить файл в S3 Сервер Claude Code cp file /mnt/beget-s3/
Сгенерировать прямые ссылки Сервер Claude Code rclone link beget-s3:bucket/file
Открыть файл Excel Локальный компьютер Пользователь ~/beget-s3/nomenclature/file.xlsx
Скачать файл на диск Локальный компьютер Пользователь cp ~/beget-s3/file ~/Downloads/
Загрузить данные для обработки Локальный компьютер Пользователь cp ~/Downloads/data.xlsx ~/beget-s3/
Хранить файлы постоянно S3 облако Beget Автоматически s3://fe2c1d30dc11-s3-0kt/

🔍 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

Пример 1: Claude создаёт отчёт для пользователя

На сервере (Claude):

# 1. Сгенерировать отчёт
python generate_report.py
# Создался файл: data/report_20251117.xlsx

# 2. Положить в S3 папку
cp data/report_20251117.xlsx /mnt/beget-s3/nomenclature/

# 3. Проверить что файл на месте
ls -lh /mnt/beget-s3/nomenclature/report_20251117.xlsx
# -rw-r--r-- 1 root root 15K Nov 17 12:30 report_20251117.xlsx

# 4. Сообщить пользователю
echo "Отчёт готов:"
echo "  Linux: ~/beget-s3/nomenclature/report_20251117.xlsx"
echo "  Windows: Z:\nomenclature\report_20251117.xlsx"

На локальном компьютере (пользователь):

# 1. Проверить что файл появился (автоматически!)
ls -lh ~/beget-s3/nomenclature/
# -rw-r--r-- 1 user user 15K Nov 17 12:30 report_20251117.xlsx

# 2. Открыть файл
xdg-open ~/beget-s3/nomenclature/report_20251117.xlsx
# Откроется в LibreOffice/Excel

# 3. Или скачать на диск
cp ~/beget-s3/nomenclature/report_20251117.xlsx ~/Documents/

Пример 2: Пользователь загружает данные для обработки

На локальном компьютере (пользователь):

# 1. Скачал файл из 1С в ~/Downloads/data.xlsx

# 2. Копирую в S3 папку
cp ~/Downloads/data.xlsx ~/beget-s3/nomenclature/incoming/

# 3. Проверяю что скопировалось
ls -lh ~/beget-s3/nomenclature/incoming/
# -rw-r--r-- 1 user user 42K Nov 17 12:35 data.xlsx

# 4. Жду обработки от Claude (или сообщаю что положил файл)

На сервере (Claude):

# 1. Проверяю incoming папку (автоматически увидел файл!)
ls -lh /mnt/beget-s3/nomenclature/incoming/
# -rw-r--r-- 1 root root 42K Nov 17 12:35 data.xlsx

# 2. Обрабатываю
python process_data.py /mnt/beget-s3/nomenclature/incoming/data.xlsx

# 3. Результат кладу обратно в S3
cp result.xlsx /mnt/beget-s3/nomenclature/outgoing/

# 4. Архивирую исходный файл
mv /mnt/beget-s3/nomenclature/incoming/data.xlsx \
   /mnt/beget-s3/nomenclature/archive/data_20251117_123500.xlsx

⚠️ ВАЖНЫЕ ДЕТАЛИ

1. Пути РАЗНЫЕ на сервере и компьютере

Где Путь к S3 папке
Сервер (Claude) /mnt/beget-s3/
Локальный компьютер (Linux) ~/beget-s3/
Локальный компьютер (Windows) Z:\

Важно: Это ОДИН И ТОТ ЖЕ бакет в облаке, но смонтирован в разные места!


2. Синхронизация происходит автоматически


3. Файлы хранятся в облаке, а не на машинах


4. Конфигурация rclone одинаковая

Файл /root/.config/rclone/rclone.conf (на сервере) и
файл ~/.config/rclone/rclone.conf (на компьютере) содержат:

[beget-s3]
type = s3
provider = Other
access_key_id = F1AIVIQI0DE3PJGIWQC1
secret_access_key = iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ
endpoint = https://s3.ru1.storage.beget.cloud
region = ru-1

Важно: Credentials ОДИНАКОВЫЕ на всех машинах → доступ к одному бакету


🛡️ БЕЗОПАСНОСТЬ

Кто имеет доступ к S3 папке?

  1. ✅ Сервер (91.218.142.168) - через rclone mount
  2. ✅ Локальный компьютер пользователя - через rclone mount
  3. ❌ Другие серверы - НЕТ (нет credentials)
  4. ❌ Интернет - НЕТ (бакет приватный)

Прямые ссылки (временные):
- ✅ Любой кто знает ссылку может скачать (7 дней)
- ⚠️ Не передавай ссылки посторонним!


📈 ПРОИЗВОДИТЕЛЬНОСТЬ

Скорость обмена файлами:

Размер файла Время синхронизации Скорость
1 KB ~0.5 сек Мгновенно
10 KB ~1 сек Очень быстро
100 KB ~2 сек Быстро
1 MB ~5 сек Нормально
10 MB ~15-30 сек Медленнее
100 MB ~2-5 минут Долго (лучше SCP)

Рекомендация:
Для файлов >100 MB лучше использовать прямой SCP/rsync между серверами.


🔄 АЛЬТЕРНАТИВНЫЕ СПОСОБЫ ОБМЕНА

Кроме S3 папки есть другие способы:

  1. Прямые ссылки S3 (текущий документ DIRECT_LINKS.md)
    - Плюсы: работают в браузере, легко передать
    - Минусы: истекают через 7 дней

  2. SCP/rsync (прямая передача между машинами)
    - Плюсы: очень быстро, для больших файлов
    - Минусы: нужен SSH доступ

  3. Git (для кода и документов)
    - Плюсы: версионирование, история изменений
    - Минусы: не для больших бинарных файлов

  4. Email/Telegram (НЕ ИСПОЛЬЗОВАТЬ!)
    - ❌ Медленно
    - ❌ Ограничения по размеру
    - ❌ Неудобно
    - ❌ Не автоматизируется


📚 ДОПОЛНИТЕЛЬНАЯ ДОКУМЕНТАЦИЯ


Версия: 1.0
Дата: 2025-11-17
Автор: Claude Code
Статус: ✅ Полная документация архитектуры