From 3ccb8154eb40a432aa467fb06b3f216fd0d2c6b4 Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Sat, 17 Jan 2026 14:01:29 +0100 Subject: [PATCH] fix: correct storage path resolution in multiple files (#96) Fixed inconsistent storage path fallbacks that caused 500 errors when serving thumbnails. The paths were using '../../storage' (2 levels up) instead of '../../../storage' (3 levels up) when STORAGE_PATH env var is not set. Affected files: - backend/src/routes/gallery.js - backend/src/services/photoService.js - backend/src/services/eventService.js --- backend/src/routes/gallery.js | 2 +- backend/src/services/eventService.js | 2 +- backend/src/services/photoService.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/routes/gallery.js b/backend/src/routes/gallery.js index c810e7c8..a8a3db71 100644 --- a/backend/src/routes/gallery.js +++ b/backend/src/routes/gallery.js @@ -16,7 +16,7 @@ const { NotFoundError } = require('../utils/errors'); const { ensureThumbnail } = require('../services/imageProcessor'); // Get storage path from environment or default -const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../storage'); +const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../../storage'); // Check for slug redirect (for renamed events) async function checkSlugRedirect(slug) { diff --git a/backend/src/services/eventService.js b/backend/src/services/eventService.js index 6171393c..31eb89d2 100644 --- a/backend/src/services/eventService.js +++ b/backend/src/services/eventService.js @@ -15,7 +15,7 @@ const { validatePasswordInContext, getBcryptRounds } = require('../utils/passwor const { buildShareLinkVariants } = require('./shareLinkService'); const { parseBooleanInput, parseStringInput } = require('../utils/parsers'); -const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../storage'); +const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../../storage'); // Cache for schema detection let customerColumnCache = null; diff --git a/backend/src/services/photoService.js b/backend/src/services/photoService.js index 7728396b..1bd8511a 100644 --- a/backend/src/services/photoService.js +++ b/backend/src/services/photoService.js @@ -10,7 +10,7 @@ const fs = require('fs').promises; const { db } = require('../database/db'); const { formatBoolean } = require('../utils/dbCompat'); -const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../storage'); +const getStoragePath = () => process.env.STORAGE_PATH || path.join(__dirname, '../../../storage'); /** * Get photos for an event with optional filtering