diff --git a/src/ThumbnailApi.ts b/src/ThumbnailApi.ts index 370dd14..35c2404 100644 --- a/src/ThumbnailApi.ts +++ b/src/ThumbnailApi.ts @@ -98,6 +98,7 @@ export class ThumbnailApi { if (!this.responseHelper.okStatus(status)) { const error = new Error(`Status ${String(status)} from upstream.`); + this.releaseUpstreamBody(remoteImageResponse); this.sendError(expressResponse, itemId, 404, error); return; } @@ -106,6 +107,7 @@ export class ThumbnailApi { if (!this.responseHelper.okHeaders(remoteImageResponse.headers)) { const error = new Error(`Got bad headers from upstream.`); + this.releaseUpstreamBody(remoteImageResponse); this.sendError(expressResponse, itemId, 404, error); return; } @@ -139,6 +141,7 @@ export class ThumbnailApi { if (!this.responseHelper.okStatus(status)) { const error = new Error(`Status ${String(status)} from upstream.`); + this.releaseUpstreamBody(response); this.sendError(expressResponse, itemId, 404, error); return; } @@ -169,6 +172,10 @@ export class ThumbnailApi { } } + private releaseUpstreamBody(response: Response): void { + void response.body?.cancel?.()?.catch(() => {}); + } + sendError( res: express.Response, itemId: string,