Skip to content

同步更新 - #654

Open
yuanwangokk-1 wants to merge 868 commits into
MarSeventh:mainfrom
yuanwangokk-1:main
Open

同步更新#654
yuanwangokk-1 wants to merge 868 commits into
MarSeventh:mainfrom
yuanwangokk-1:main

Conversation

@yuanwangokk-1

Copy link
Copy Markdown

做个备份

MarSeventh and others added 30 commits January 1, 2026 01:10
完善公开访问图库功能,支持在线播放
feat: 公开浏览功能增强 & Discord API 429重试
…ting

- Change SESSION_PREFIX from 'session@' to 'manage@session@' to prevent
  sessions from appearing in file index and backups
- Add KV expirationTtl for automatic session cleanup on expiry
- Fix D1 adapter: route all manage@ keys to settings table instead of
  files table (fixes blockipList and session storage in wrong table)
- Fix D1 list({ prefix: 'manage@' }) not matching settings table
  (fixes backup not containing settings data)
- Exclude manage@session@ keys from settings backup export
Treat from=admin as an admin preview marker that requires validated admin credentials, and keep admin preview responses privately cached.
Return only customer summaries from the list endpoint and lazy-load per-IP files to avoid sending full upload records on every page load.
The loop in findFunctionFile started from parts.length - 1, which
skipped the directory-level [[path]].js match when the request path
had exactly one segment (e.g. /dav/, /file/). Changed to start from
parts.length so these root paths correctly resolve to their handlers.

Fixes /dav/ returning 404 and /file/ similarly affected.
- Add 'internal' token type to API Token system, hidden from the
  security settings token list
- When WebDAV is enabled, auto-create an internal API Token with
  list/upload/delete permissions, stored in WebDAV config
- When WebDAV is disabled, auto-delete the internal token
- WebDAV handler reads the internal token from config and sends it
  as Bearer auth; if missing, creates one on-the-fly as fallback
- Works across both Docker and Cloudflare deployments since the
  token is persisted in KV/D1, not in process memory
- Read FileSizeBytes instead of non-existent File-Size metadata field,
  so getcontentlength reports actual bytes instead of always 0
- Add /dav prefix to file href so WebDAV clients can GET files at the
  correct path

Fixes files showing as 0B and being unopenable in RaiDrive, Cyberduck,
and Windows mapped drives.
Read FileType from metadata to populate D:getcontenttype (e.g.
image/jpeg), enabling WebDAV clients like Alist to identify file
types and show image previews.
…mestamp

- File size: prefer FileSizeBytes, fall back to FileSize (MB) * 1024^2
  for files uploaded before FileSizeBytes was added
- Timestamps: use TimeStamp from metadata instead of current time,
  so clients show the actual upload date, not the PROPFIND request time
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants