耳机频响文件改为s3 存储,修改了x9 升级包的存储路径
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user