fix crash when request is closed #11

Merged
cirroskais merged 1 commit from development into master 2024-10-04 09:11:28 +00:00
3 changed files with 14 additions and 8 deletions
Showing only changes of commit 6bb97f460d - Show all commits

View file

@ -19,7 +19,10 @@ export const GET = async ({ request, locals, params }) => {
const metadata = await minio.statObject(BUCKET, upload.thumbnail.fileName);
const ac = new AbortController();
ac.signal.onabort = () => object.destroy;
ac.signal.onabort = () => {
object.destroy();
object.removeAllListeners();
};
const stream = new ReadableStream({
start(controller) {

View file

@ -1,6 +1,7 @@
import { getUpload } from '$lib/server/database.js';
import minio, { BUCKET } from '$lib/server/minio';
import { error } from '@sveltejs/kit';
import { setTimeout } from 'node:timers/promises';
export const GET = async ({ params, locals }) => {
let id: any = params.id.split('.');
@ -17,7 +18,10 @@ export const GET = async ({ params, locals }) => {
const metadata = await minio.statObject(BUCKET, `${file.uploader.id}/${file.internalName}`);
const ac = new AbortController();
ac.signal.onabort = () => object.destroy;
ac.signal.onabort = () => {
object.destroy();
object.removeAllListeners();
};
const stream = new ReadableStream({
start(controller) {
@ -25,11 +29,7 @@ export const GET = async ({ params, locals }) => {
controller.enqueue(chunk);
});
object.on('end', () => {
try {
controller.close();
} catch (e) {
console.log('Tried to close closed stream', id);
}
controller.close();
});
},
cancel() {

View file

@ -27,7 +27,10 @@ export const GET = async ({ params, locals }) => {
const metadata = await minio.statObject(BUCKET, `${file.uploader.id}/${file.internalName}`);
const ac = new AbortController();
ac.signal.onabort = () => object.destroy;
ac.signal.onabort = () => {
object.destroy();
object.removeAllListeners();
};
const stream = new ReadableStream({
start(controller) {