Compare commits

...

2 commits

3 changed files with 14 additions and 8 deletions

View file

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

View file

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