- storage.js: абстракция хранилища с драйверами local и s3 (AWS SDK v3), ключи объектов совпадают с текущими путями /uploads/<файл>, поэтому схема БД и URL не меняются - docker-compose.yml: сервис s3 (SeaweedFS, том s3-data, API только на loopback), переменные S3_*/STORAGE_*, restart unless-stopped для app и db - docker-compose.minio.yml: оверрайд S3-сервиса на MinIO (образ из своего зеркала) - server.js/worker.js: чтение и запись файлов только через storage (отдача /uploads/*, миниатюры, share-файлы, zip-отчёты, enhance/apply/rollback, photo-worker), автосоздание бакета, глобальная персистенция загрузок multer - бэкап/восстановление и scripts/backup.sh, restore.sh — через scripts/storage-sync.js - scripts/migrate-to-s3.js: идемпотентная миграция uploads/ в бакет (--dry-run, --verify-only, --delete-local) - админка: блок «Хранилище» в системной информации - .env.example, README.md, AGENTS.md: описание драйверов, переменных и перехода на S3
25 lines
490 B
JSON
25 lines
490 B
JSON
{
|
|
"name": "whereldo",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"start": "node server.js"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.1141.0",
|
|
"bcrypt": "^5.1.1",
|
|
"express": "^4.21.0",
|
|
"express-rate-limit": "^8.7.0",
|
|
"heic-convert": "^2.1.0",
|
|
"helmet": "^8.3.0",
|
|
"lucide": "^1.44.0",
|
|
"multer": "^1.4.5-lts.1",
|
|
"pg": "^8.13.0",
|
|
"sharp": "^0.34.5",
|
|
"tar": "^7.4.3"
|
|
},
|
|
"allowScripts": {
|
|
"bcrypt@5.1.1": true
|
|
}
|
|
}
|