Commit Graph
14 Commits
Author SHA1 Message Date
MarSeventh 7a398c5449 feat: add URL-based image resizing 2026-07-28 11:33:44 +08:00
caoyong 65cd72b8b9 feat(manage): add concurrent batch image deletion 2026-07-22 19:59:04 +08:00
MarSeventh efe5ba3c82 fix: enable global_fetch_strictly_public to fix WebDAV 522 (Worker deploy) 2026-06-15 15:14:20 +08:00
yulei666andGitHub d4487d6a82 Merge branch 'MarSeventh:main' into chore/webdav-522-global-fetch-flag 2026-06-15 15:06:01 +08:00
Yu LeiandClaude Opus 4.8 1f68c6caa3 Enable global_fetch_strictly_public to fix WebDAV 522 (Worker deploy)
On a Cloudflare Worker, fetch() to the Worker's own zone bypasses the
public edge and routes directly to origin, skipping the Worker itself.
This deployment has no separate origin, so every WebDAV self-call
(/api/manage/list, /file, /upload, /api/manage/delete) instantly returns
HTTP 522. The global_fetch_strictly_public compatibility flag routes
same-zone subrequests through Cloudflare's front door so they re-enter
the Worker normally.

Set the flag in both the committed wrangler.toml (manual deploy) and the
generate-toml.js template (GitHub Actions regenerates the toml on CI).

This is an alternative to the in-process dispatch fix on
fix/webdav-522-inprocess-dispatch; pick one.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-15 15:03:36 +08:00
MarSeventh 0f27feffd4 docs(worker): comment cache adapter 2026-06-15 14:21:38 +08:00
MarSeventh 1ee3eb6a40 feat(worker): cache responses by cache-control 2026-06-15 11:34:49 +08:00
outlook84 787fd5966c feat: add completeMultipart API for handling multipart uploads 2026-06-02 13:15:17 +08:00
MarSeventh fa4be36ebf fix: wrap Docker server responses with native Response 2026-05-06 16:41:16 +08:00
MarSeventh bab238a6dc fix: catch-all [[path]].js route matching off-by-one for root paths
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.
2026-05-01 19:24:57 +08:00
MarSeventh 99a8f8d9c5 fix: reduce customer config list load
Return only customer summaries from the list endpoint and lazy-load per-IP files to avoid sending full upload records on every page load.
2026-04-29 16:53:58 +08:00
MarSeventh 062a71213d feat: add webdav upload channel 2026-04-28 16:38:12 +08:00
htazq 9c7a2b4336 Enable third-party WebDAV storage without new runtime dependencies
Cloudflare Workers and Pages already provide the Fetch/Web APIs needed for WebDAV verbs, so the storage integration uses a small local helper instead of adding a Node-oriented WebDAV client. The channel now participates in upload, read, delete, move, rename, channel listing, and runtime config, with chunked uploads explicitly guarded because WebDAV has no portable server-side compose primitive.

Constraint: Preserve Pages Functions and generated Worker deployment paths
Constraint: No new npm dependency for WebDAV client behavior
Rejected: Add a WebDAV npm client | likely Node API/compatibility and package-lock churn
Rejected: Treat WebDAV as External URL only | not a complete storage channel lifecycle
Confidence: high
Scope-risk: moderate
Directive: WebDAV here is third-party storage; keep it distinct from the built-in /dav server settings
Tested: npm test; node worker/generate-routes.js; npx wrangler deploy --dry-run --config worker/wrangler.toml; git diff --cached --check
Not-tested: Live third-party WebDAV provider credentials; Digest-only WebDAV authentication
2026-04-28 00:05:12 +08:00
MarSeventh ab23ee76ae Move deployment adapters under deploy 2026-04-26 17:46:38 +08:00