diff --git a/Services/server/src/app.ts b/Services/server/src/app.ts index 6d1030c..d0d7c7b 100644 --- a/Services/server/src/app.ts +++ b/Services/server/src/app.ts @@ -35,4 +35,4 @@ app.listen(PORT, "0.0.0.0", () => console.log(`[APP] Application is running on http://localhost:${PORT}`), ); -// rabbitmq.init(amqHandler).catch((e) => console.error(e)); +rabbitmq.init(amqHandler).catch((e) => console.error(e)); diff --git a/Services/server/src/rabbitmq/handler.ts b/Services/server/src/rabbitmq/handler.ts index f02d48b..720f0f3 100644 --- a/Services/server/src/rabbitmq/handler.ts +++ b/Services/server/src/rabbitmq/handler.ts @@ -21,9 +21,19 @@ export async function handler(key: string, event: string): Promise { } if (!cachedBuffer[key]) { - const stream = await minioClient.getObject(bucket, pathname); - const buffer = Buffer.concat(await stream.toArray()); - cachedBuffer[key] = buffer; + try { + const stream = await minioClient.getObject(bucket, pathname); + const buffer = Buffer.concat(await stream.toArray()); + cachedBuffer[key] = buffer; + } catch (e: any) { + if (e.code === "NoSuchKey") { + console.info(`[AMQ] Key: ${key} received but cannot be found.`) + delete cachedBuffer[key]; + delete cachedMetadata[key]; + await ensureDelete(pathname); + return true; + } + } } if (!cachedMetadata[key]) {