const path = require('path'); const { createStorage } = require('../storage'); function usage() { console.log(`Экспорт/импорт файлов хранилища (для scripts/backup.sh и scripts/restore.sh). Использование: node scripts/storage-sync.js export <каталог> выгрузить все объекты в каталог node scripts/storage-sync.js import <каталог> загрузить все файлы из каталога в хранилище Работает с текущим драйвером из переменных окружения (local — ./uploads, s3 — бакет MinIO/S3).`); } async function main() { const [, , mode, dirArg] = process.argv; if (!mode || !dirArg || mode === '--help' || mode === '-h') { usage(); return process.exit(mode ? 0 : 2); } const dir = path.resolve(dirArg); const storage = createStorage({ dir: path.join(__dirname, '..', 'uploads') }); if (mode === 'export') { const count = await storage.downloadAll(dir); console.log(`Экспортировано объектов: ${count} -> ${dir}`); return; } if (mode === 'import') { const count = await storage.uploadTree(dir); console.log(`Импортировано файлов: ${count} <- ${dir}`); return; } usage(); process.exit(2); } main().catch(err => { console.error('storage-sync failed:', err.message); process.exit(1); });