Document upload platform deployment

This commit is contained in:
Repinoid
2026-10-21 12:05:22 +03:00
parent 93900b9c96
commit 7f8e64a99e
+31 -2
View File
@@ -1,5 +1,34 @@
# Upload Platform # Upload Platform
## Где это работает
Это отдельный репозиторий, не основной DrHider:
- репозиторий: `https://gitea.services.ngcloud.ru/forcloud/upload-platform`
- VM: `naeel@5.172.178.213` (VM213)
- systemd-сервис: `vmfiles.service`
- локальный backend: `127.0.0.1:8769`
- внешний маршрут сервиса: `https://<hostname-VM213>/api/v1/`
Push в `Nail/drhider` или `forcloud/obfuscator` не обновляет этот сервис.
Его код, деплой и перезапуск нужно рассматривать отдельно.
## Важно: это не текущий путь загрузки DrHider
Основной DrHider сейчас использует отдельный WebDAV-буфер Nginx:
```text
https://upload.sinefo.ru/drhider-upload/
```
Он также находится на VM213, но обслуживается Nginx, а не `vmfiles.service`.
Поток DrHider: браузер делает `PUT` в WebDAV, Flask получает ссылки через
`POST /api/upload_refs`, забирает файлы по `GET` и удаляет их через `DELETE`.
Старый адрес `contracts.kube5s.ru` считать устаревшим. В новых интеграциях
использовать `upload.sinefo.ru` для WebDAV или отдельно согласованный hostname
для `/api/v1/` `vmfiles`.
Модульная платформа загрузки и транзита документов (версия `0.2.0`). Состоит из двух независимых автономных слоёв с чистыми API: Модульная платформа загрузки и транзита документов (версия `0.2.0`). Состоит из двух независимых автономных слоёв с чистыми API:
1. **Слой 1 (File Picker)**: Клиентский выбор файлов, папок и вложенных ZIP-архивов с дедупликацией, фильтрацией по расширениям, проверкой лимитов и визуализацией в виде дерева. 1. **Слой 1 (File Picker)**: Клиентский выбор файлов, папок и вложенных ZIP-архивов с дедупликацией, фильтрацией по расширениям, проверкой лимитов и визуализацией в виде дерева.
@@ -151,7 +180,7 @@ from upload.backend.session import get_files
upload_bp = create_upload_refs_blueprint({ upload_bp = create_upload_refs_blueprint({
"apiPrefix": "/api", "apiPrefix": "/api",
"vmUploadPrefix": "https://contracts.kube5s.ru/drhider-upload/", # Префикс вашего буфера "vmUploadPrefix": "https://upload.sinefo.ru/drhider-upload/", # Префикс вашего буфера
"maxFileBytes": 50 * 1024 * 1024, "maxFileBytes": 50 * 1024 * 1024,
"maxSessionBytes": 500 * 1024 * 1024, "maxSessionBytes": 500 * 1024 * 1024,
}) })
@@ -174,7 +203,7 @@ app.register_blueprint(upload_bp)
document.getElementById('upload-btn').addEventListener('click', async () => { document.getElementById('upload-btn').addEventListener('click', async () => {
const files = picker.getFiles(); const files = picker.getFiles();
const result = await FilePicker.uploadViaVM(files, { const result = await FilePicker.uploadViaVM(files, {
vmUploadUrl: 'https://contracts.kube5s.ru/drhider-upload/', vmUploadUrl: 'https://upload.sinefo.ru/drhider-upload/',
backendUploadUrl: '/api/upload_refs', backendUploadUrl: '/api/upload_refs',
onFileStatus: (idx, status) => console.log(`File ${idx}: ${status}`), onFileStatus: (idx, status) => console.log(`File ${idx}: ${status}`),
}); });