耳机频响文件改为s3 存储,修改了x9 升级包的存储路径

This commit is contained in:
eafonyang
2026-06-09 19:44:51 +08:00
parent e4e6529577
commit 316852274a
8 changed files with 263 additions and 43 deletions
+17 -14
View File
@@ -5,13 +5,13 @@ const router = require('express').Router();
const { Op } = require('sequelize');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const axios = require('axios');
const Model = require('../models/Model');
const logger = require('../config/logger');
const { ApiResponse } = require('../utils/response');
const { authMiddleware } = require('../middleware/auth');
const { fetchAndValidateCurve } = require('../services/curveClient');
const { uploadMeasurementToS3 } = require('../services/measurementStorage');
/**
* 将 TXT 频响文件内容转换为 CSV 格式
@@ -78,7 +78,6 @@ const MEILISEARCH_API_KEY = process.env.MEILISEARCH_API_KEY || '';
const MEILISEARCH_INDEX = process.env.MEILISEARCH_INDEX || 'models';
// 文件上传配置
const UPLOAD_FOLDER = process.env.UPLOAD_FOLDER || '/data/project/autoeq/measurements';
const ALLOWED_EXTENSIONS = ['.csv', '.txt', '.json'];
// GET /api/models/
@@ -178,12 +177,14 @@ router.post('/api/models/', upload.single('measurement_file'), async (req, res)
return res.json(ApiResponse.error(`不支持的文件格式:${fileExt}`));
}
const { buffer: fileBuffer, filename: savedFilename } = processUploadedFile(req.file.buffer, req.file.originalname);
const saveDir = path.join(UPLOAD_FOLDER, source || '', 'data', form || '');
fs.mkdirSync(saveDir, { recursive: true });
const filePath = path.join(saveDir, savedFilename);
fs.writeFileSync(filePath, fileBuffer);
logger.info(`File saved: ${filePath}`);
const { buffer: fileBuffer } = processUploadedFile(req.file.buffer, req.file.originalname);
const s3Key = await uploadMeasurementToS3(fileBuffer, {
source: source || 'Eafonyoung',
form: form || 'in-ear',
brandName: brand_name,
modelName: name,
});
logger.info(`Measurement file uploaded to S3: ${s3Key}`);
}
const dbModel = await Model.create({
@@ -251,12 +252,14 @@ router.put('/api/models/:model_id', upload.single('measurement_file'), async (re
if (!effSource || !effForm) {
return res.json(ApiResponse.error('上传频响文件需要来源与形式字段'));
}
const { buffer: fileBuffer, filename: savedFilename } = processUploadedFile(req.file.buffer, req.file.originalname);
const saveDir = path.join(UPLOAD_FOLDER, effSource, 'data', effForm);
fs.mkdirSync(saveDir, { recursive: true });
const filePath = path.join(saveDir, savedFilename);
fs.writeFileSync(filePath, fileBuffer);
logger.info(`File saved: ${filePath}`);
const { buffer: fileBuffer } = processUploadedFile(req.file.buffer, req.file.originalname);
const s3Key = await uploadMeasurementToS3(fileBuffer, {
source: effSource,
form: effForm,
brandName: newBrandName,
modelName: newName,
});
logger.info(`Measurement file uploaded to S3: ${s3Key}`);
}
if (brand_name !== undefined && brand_name !== 'null') dbModel.brand_name = brand_name;