관리자 미디어 라이브러리·썸네일 탭 분리 및 논리 폴더 정책(v0.0.90)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-12 10:40:27 +09:00
parent 05176609ee
commit 21024602b0
10 changed files with 488 additions and 95 deletions

View File

@@ -3,10 +3,10 @@ import { mkdir, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { createError, readMultipartFormData } from 'h3'
import sharp from 'sharp'
import { getPostgresClient } from '../../repositories/postgres-client'
import { updateMemberProfile, getUserById } from '../../repositories/member-repository'
import { requireMemberSession } from '../../utils/member-auth'
import { removeManagedAvatarAsset } from '../../utils/member-avatar'
import { MEDIA_THUMBNAIL_ROOT, upsertMediaMetadataCategory } from '../../utils/media-library'
const allowedImageTypes = new Map([
['image/jpeg', '.jpg'],
@@ -145,17 +145,7 @@ export default defineEventHandler(async (event) => {
avatarUrl
})
const sql = getPostgresClient()
if (sql) {
await sql`
INSERT INTO media_metadata (url, category)
VALUES (${avatarUrl}, ${'회원/썸네일'})
ON CONFLICT (url) DO UPDATE
SET
category = EXCLUDED.category,
updated_at = now()
`
}
await upsertMediaMetadataCategory(avatarUrl, MEDIA_THUMBNAIL_ROOT)
if (currentUser.avatarUrl && currentUser.avatarUrl !== avatarUrl) {
await removeManagedAvatarAsset(currentUser.avatarUrl)