From f7bc3b4dd23d33238990160fbdccd8990c600fbe Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 21 Feb 2026 20:36:06 +0100 Subject: [PATCH] Fix learning hub upload: ensure mopc-learning bucket exists The getUploadUrl procedure generated a presigned PUT URL without first checking that the mopc-learning bucket exists, causing all uploads to fail. Co-Authored-By: Claude Opus 4.6 --- src/server/routers/learningResource.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/routers/learningResource.ts b/src/server/routers/learningResource.ts index 2d62fea..ebefb45 100644 --- a/src/server/routers/learningResource.ts +++ b/src/server/routers/learningResource.ts @@ -6,7 +6,7 @@ import { protectedProcedure, adminProcedure, } from '../trpc' -import { getPresignedUrl } from '@/lib/minio' +import { getPresignedUrl, ensureBucket } from '@/lib/minio' import { logAudit } from '../utils/audit' // Bucket for learning resources @@ -415,6 +415,7 @@ export const learningResourceRouter = router({ const sanitizedName = input.fileName.replace(/[^a-zA-Z0-9.-]/g, '_') const objectKey = `resources/${timestamp}-${sanitizedName}` + await ensureBucket(LEARNING_BUCKET) const url = await getPresignedUrl(LEARNING_BUCKET, objectKey, 'PUT', 3600) return {