feat: activity logs, gallery storage filter, and upload rate limits

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.
This commit is contained in:
O96u committed 2026-08-26 17:09:38 +08:00
1 parent 901fefb3f5
commit 6fc054328d
34 files changed
+1357 -72

No files matched your search

+7 -3
View File
@@ -37,7 +37,7 @@ export async function putImage(
key: string,
bytes: Uint8Array,
meta: StoredImageMeta
): Promise<void> {
): Promise<string> {
const backend = await getActiveBackend()
await backend.put(key, bytes, meta)
insertImageIndex({
@@ -49,6 +49,7 @@ export async function putImage(
size: meta.size,
uploadedAt: meta.uploadedAt
})
return backend.id
}
export async function headImage(key: string): Promise<StoredImage | null> {
@@ -97,9 +98,10 @@ export async function listImageKeys(): Promise<string[]> {
export async function countImages(
folder?: string,
userFilter?: number | 'admin'
userFilter?: number | 'admin',
backendId?: string
): Promise<number> {
return countImagesFromIndex(folder, userFilter)
return countImagesFromIndex(folder, userFilter, backendId)
}
export async function getFolderStorageStats(
@@ -129,6 +131,7 @@ export async function listImages(options: {
page?: number
folder?: string
userFilter?: number | 'admin'
backendId?: string
}): Promise<PaginatedResult<StoredImage>> {
return listImagesFromIndex(options)
}
@@ -139,6 +142,7 @@ export async function searchImages(options: {
page?: number
folder?: string
userFilter?: number | 'admin'
backendId?: string
}): Promise<PaginatedResult<StoredImage>> {
return searchImagesFromIndex(options)
}