first commit
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { Request, Response } from 'express';
|
||||
import StreamService from '../services/streamService';
|
||||
|
||||
export default class StreamController {
|
||||
constructor(private streamService: StreamService) { }
|
||||
|
||||
// GET /api/streams/:key
|
||||
async streamAudio(req: Request, res: Response) {
|
||||
const { fileName: key } = req.params as { fileName: string };
|
||||
const range = req.headers.range as string | undefined;
|
||||
if (!key) return res.status(400).send('Missing file key');
|
||||
|
||||
try {
|
||||
const result = await this.streamService.streamFromS3({ key, range });
|
||||
res.writeHead(result.status, result.headers);
|
||||
result.body.pipe(res);
|
||||
} catch (err: any) {
|
||||
const message = err?.message || 'Error streaming audio';
|
||||
const status = err?.statusCode || 500;
|
||||
res.status(status).send(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user