Changeset e2c3d09 in Klonkt for src/routes/admin-sites.js


Ignore:
Timestamp:
07/31/2026 12:33:18 PM (6 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
2dd1dc4
Parents:
859b1707
Message:

Media-submappen volgen nu MEDIA_PATH

De submappen voor avatars, post-images, reply-media, hero en audio-covers hadden
elk hun eigen env-variabele met een fallback naar <app>/storage/media/<sub>.
Daardoor negeerden ze MEDIA_PATH: wie zijn data buiten de checkout zette kreeg
alsnog een storage/-map in de work-tree, en uploads landden naast de code. Een
opruimstap bij een volgende deploy kan die vervolgens weggooien.

Nu leiden ze allemaal af van MEDIA_PATH via een gedeelde helper. Een eigen
override per submap wint nog steeds, dus bestaande installaties merken niets.
Dit maakt de scheiding van gebruikersdata en programmadata mogelijk met drie
regels in .env in plaats van acht.

Changed files:
src/routes/account.js

  • AVATAR_DIR via mediaDir(); dode dirname en fileURLToPath-import weg

src/routes/posts.js

  • POST_IMAGES_DIR en REPLY_MEDIA_DIR via mediaDir(); dode declaraties weg

src/routes/admin-media.js

  • POST_IMAGES_DIR en REPLY_MEDIA_DIR via mediaDir(); dode declaraties weg

src/routes/admin-settings.js

  • HERO_DIR via mediaDir(); dode declaraties weg

src/routes/admin-playlists.js

  • COVER_DIR via mediaDir(); dode dirname weg

src/routes/admin-audio.js

  • COVER_DIR via mediaDir(); AUDIO_DIR ongewijzigd (eigen wortel)

src/routes/admin-sites.js

  • PHOTO_DIR via mediaDir(), deelt bewust de avatars-map

src/routes/activitypub.js

  • AP_MEDIA_DIR via mediaDir(); ongebruikte fileURLToPath-import weg

New file:
src/config/paths.js

  • MEDIA_ROOT afgeleid van MEDIA_PATH
  • mediaDir(envVar, sub) voor submappen, met behoud van per-map overrides

DATABASE_PATH en AUDIO_PATH zijn eigen wortels en bewust ongemoeid gelaten.
Geverifieerd: 356 tests groen, en een server met externe MEDIA_PATH maakt al
zijn mappen buiten de checkout aan zonder de work-tree te raken.

-robo
Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-sites.js

    r859b1707 re2c3d09  
    1717import path from 'path';
    1818import fs from 'fs';
    19 import { fileURLToPath } from 'url';
    2019import multer from 'multer';
    2120import { v4 as uuid } from 'uuid';
     
    2625import { listPlatforms, PLATFORMS } from '../services/PlatformIcons.js';
    2726import { toWebp } from '../services/ImageWebpService.js';
    28 
    29 const __dirname = path.dirname(fileURLToPath(import.meta.url));
     27import { mediaDir } from '../config/paths.js';
     28
    3029
    3130// Profile photos share the avatar directory with user avatars — same physical
    3231// folder, same URL prefix. Filenames are uuid-prefixed so site photos and
    3332// user avatars never collide.
    34 const PHOTO_DIR = path.resolve(
    35   process.env.AVATAR_PATH || path.join(__dirname, '..', '..', 'storage', 'media', 'avatars')
    36 );
     33const PHOTO_DIR = mediaDir('AVATAR_PATH', 'avatars');
    3734fs.mkdirSync(PHOTO_DIR, { recursive: true });
    3835
Note: See TracChangeset for help on using the changeset viewer.