feat(assets): add searchable media library and verified orphan cleanup

This commit is contained in:
eezd committed 2026-10-22 15:09:15 +08:00
1 parent 06be0038cf
commit 91a359c2b7
13 files changed
+424 -51

No files matched your search

+11 -1
View File
@@ -85,6 +85,7 @@ func (s *Server) routes() []route {
{"POST /api/v1/folders", authed, s.mkdir},
{"POST /api/v1/import", authed, s.importNotes},
{"POST /api/v1/assets", authed, s.uploadAsset},
{"POST /api/v1/assets/cleanup", authed, s.cleanupImages},
{"POST /api/v1/assets/import", authed, s.importAsset},
{"PUT /api/v1/assets/{path...}", authed, s.replaceImage},
{"GET /api/v1/raw/{path...}", authed, s.raw},
@@ -389,7 +390,16 @@ func (s *Server) uploadAsset(w http.ResponseWriter, r *http.Request) {
return
}
defer file.Close()
link, err := s.vault.SaveAsset(r.URL.Query().Get("note"), header.Filename, file, maxAssetBytes)
var link string
if r.URL.Query().Has("folder") {
if r.URL.Query().Has("note") {
writeError(w, 400, "不能同时指定笔记和文件夹")
return
}
link, err = s.vault.SaveFolderAsset(r.URL.Query().Get("folder"), header.Filename, file, maxAssetBytes)
} else {
link, err = s.vault.SaveAsset(r.URL.Query().Get("note"), header.Filename, file, maxAssetBytes)
}
if err != nil {
vaultError(w, r, err)
return