Commit 52fd8362 authored by mingyard's avatar mingyard

feat:流文件上传obs

parent dd15e79e
......@@ -85,6 +85,6 @@ export const app: AppConfig = {
},
chatServer: {
endpoint: env.APP_CHAT_SERVER ?? 'http://localhost:3000',
endpoint: env.CHAT_SERVER_URL ?? 'http://localhost:3000',
},
};
......@@ -169,11 +169,8 @@ export class TranslateController {
description: '成功返回翻译结果',
})
@Auth()
async getResult(
@Query() dto: TranslateProgressReqDto,
@Res() res: Response,
): Promise<any> {
return await this.translateService.downloadImage(dto.taskId, res);
async getResult(@Query() dto: TranslateProgressReqDto): Promise<any> {
return await this.translateService.downloadImage(dto.taskId);
}
// text合成语音
......
......@@ -11,7 +11,6 @@ import { BadRequestError } from '@/common/exception/badRequest/BadRequestError';
import * as crypto from 'crypto';
import * as FormData from 'form-data';
import { TranslateImageReqDto } from './dto/req/translateImageReq.dto';
import { Response } from 'express';
import axios, { AxiosResponse } from 'axios';
import { TTSDto } from './dto/baseDto';
......@@ -170,7 +169,7 @@ export class TranslateService {
}
// 下载翻译图片
async downloadImage(taskId: string, res: Response): Promise<any> {
async downloadImage(taskId: string): Promise<any> {
const params = {
nonce_str: crypto.randomUUID(),
tid: taskId,
......@@ -200,36 +199,37 @@ export class TranslateService {
throw BadRequestError.default('下载翻译图片失败');
}
// 设置响应头
res.setHeader('Content-Type', 'image/jpeg'); // 根据实际文件类型设置
res.setHeader('Content-Disposition', 'attachment; filename="image.jpg"'); // 设置下载文件名
// // 设置响应头
// res.setHeader('Content-Type', 'image/jpeg'); // 根据实际文件类型设置
// res.setHeader('Content-Disposition', 'attachment; filename="image.jpg"'); // 设置下载文件名
// 将文件流返回给前端
response.data.pipe(res);
// // 将文件流返回给前端
// response.data.pipe(res);
// 上传图频到服务器
// return await this.uploadStream(response.data);
const result = await this.uploadStream(response.data);
return { url: `${config.obs.endpoint}/${result.filename}` };
}
async uploadStream(stream) {
const formData = new FormData();
formData.append('file', stream);
formData.append('file', stream, { filename: 'image.jpg' });
const response = await axios.post(
`${config.chatServer.endpoint}/upload/file`,
formData,
{
headers: {
'Content-Type': 'multipart/form-data',
...formData.getHeaders(),
},
},
);
console.log('Upload successful:', response.data);
if (response.status !== 200) {
throw BadRequestError.default('上传翻译图片失败');
}
return response.data;
return response.data.data;
}
// tts 语音合成
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment