Add per-user activity logs with storage backend tracking, gallery storage filter, and IP/token upload rate limiting. Fix storage delete modal flash, pin local backend in filter order, and link settings version to GitHub releases.
23 lines
878 B
TypeScript
23 lines
878 B
TypeScript
import { getImageUserFilter, requireApiOrAdminAuth } from '../../utils/access'
|
|
import { isValidFolderName } from '../../utils/image-key'
|
|
import { readBackendIdQuery } from '../../utils/image-query'
|
|
import { createApiError } from '../../utils/api-error'
|
|
import { countImages } from '../../utils/storage'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
await requireApiOrAdminAuth(event)
|
|
const userFilter = await getImageUserFilter(event)
|
|
|
|
const query = getQuery(event)
|
|
const raw = typeof query.folder === 'string' ? query.folder.trim() : ''
|
|
const folder = raw && raw !== 'all' && isValidFolderName(raw) ? raw : undefined
|
|
const backendId = readBackendIdQuery(query)
|
|
if (backendId === null) {
|
|
createApiError(event, 'INVALID_REQUEST', '无效的存储后端', 400)
|
|
}
|
|
|
|
const total = await countImages(folder, userFilter, backendId)
|
|
|
|
return { total }
|
|
})
|