Commit Graph
95 Commits
Author SHA1 Message Date
MarSeventh d8f3c22bbc fix: filter upstream file request headers 2026-07-29 22:43:13 +08:00
MarSeventh 7c5ec4463d fix: reject AVIF transforms on Pages 2026-07-29 22:04:10 +08:00
MarSeventh 9ef8a3cca4 feat: add image transform fallback handling 2026-07-29 21:41:50 +08:00
MarSeventh d5b3ffb0dd fix: preserve GIF and SVG formats during transforms 2026-07-29 21:07:54 +08:00
MarSeventh 63175b644f fix: restore redirected Pages image transforms 2026-07-29 16:55:50 +08:00
MarSeventh 3dc03fee2f fix: proxy Pages image transformations 2026-07-29 16:48:49 +08:00
MarSeventh 8a1e56c4cc fix: redirect Pages image transformations 2026-07-29 16:36:17 +08:00
MarSeventh 37d3de73dd fix: use URL endpoint for Pages image transforms 2026-07-29 16:31:55 +08:00
MarSeventh ce3b5a8e8b feat: add Pages URL image transform fallback 2026-07-29 16:23:49 +08:00
MarSeventh 39ae1a7407 feat: configure image resizing in security settings 2026-07-28 11:54:01 +08:00
MarSeventh 7a398c5449 feat: add URL-based image resizing 2026-07-28 11:33:44 +08:00
MarSeventh 82f3b700ab refactor: remove dead metadata url fallbacks 2026-06-03 12:40:30 +08:00
MarSeventh d061353ddd refactor: rely on config for channel metadata 2026-06-03 10:57:51 +08:00
MarSeventh 3a9c201c54 fix: refresh derived metadata from config 2026-06-02 22:26:13 +08:00
MarSeventh 4ac7f0ca53 refactor: group metadata utilities 2026-06-02 22:09:45 +08:00
MarSeventh 9b5a3520e1 refactor: trim stored channel metadata 2026-06-02 22:04:47 +08:00
MarSeventh 6a8e4e83bf Unify WebDAV credential resolution 2026-06-02 19:19:43 +08:00
sean908 b9182fdc85 fix: prevent metadata credential leaks 2026-06-02 09:34:52 +00:00
MarSeventh 92fbd0260e fix: keep HuggingFace ranges unchanged 2026-05-30 18:04:18 +08:00
MarSeventh 399e3d35a7 fix: limit HuggingFace open-ended ranges 2026-05-30 17:46:20 +08:00
MarSeventh ef9c14163b revert: undo HuggingFace range streaming changes 2026-05-30 17:25:21 +08:00
MarSeventh 8c083db63a fix: stabilize HuggingFace range responses 2026-05-30 17:17:18 +08:00
MarSeventh 4ebe607f6a fix: improve HuggingFace range streaming 2026-05-30 16:44:59 +08:00
MarSeventh 6cec90176b fix: require admin auth for file preview
Treat from=admin as an admin preview marker that requires validated admin credentials, and keep admin preview responses privately cached.
2026-04-29 15:18:31 +08:00
MarSeventh 392ef53409 refactor: move storage api utils into subdirectory 2026-04-28 17:54:43 +08:00
htazq f046b15e6a Keep WebDAV secrets out of file metadata
WebDAV upload records now store only the channel identity and object/public paths. Read, delete, move, and rename operations resolve credentials and headers from the current WebDAV channel config by ChannelName, with a legacy metadata fallback so already-created records remain usable.

Constraint: Preserve existing WebDAV object lifecycle behavior while reducing metadata exposure

Rejected: Keep credentials on every file record | expands exposure through metadata reads, backups, and logs

Confidence: high

Scope-risk: moderate

Directive: Keep WebDAV credentials in upload config/env; do not reintroduce per-file credential metadata

Tested: npm test; node deploy/worker/generate-routes.js; npx wrangler deploy --dry-run --config deploy/worker/wrangler.toml; git diff --check

Not-tested: Live WebDAV provider move/delete/read workflow
2026-04-28 09:42:03 +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 e50ff0e16f chore: update static media asset paths 2026-04-26 19:34:03 +08:00
copilot-swe-agent[bot]andMarSeventh 0d1b94d7de Fix missing returnBlockImg import in file handler
Co-authored-by: MarSeventh <108160987+MarSeventh@users.noreply.github.com>
2026-03-03 18:07:43 +00:00
MarSeventh 2c1ff7241b 目录树设置和体验优化 2026-03-01 11:25:39 +08:00
MarSeventh 3dcf08e8b2 目录树设置和体验优化 2026-03-01 11:13:43 +08:00
Zhang Chao 28f13a13bd fix(s3/storage): 恢复因合并异常丢失的S3 CDN代码,导致功能失效的问题 2026-01-27 04:20:24 +00:00
MarSeventh 381f0264b0 update v2.5.4 2026-01-23 20:50:26 +08:00
zcwwww1996 2b0859058d Feat: 为 S3 存储渠道添加 CDN 加速支持
新增功能:
- 支持为 S3 渠道配置自定义 CDN 域名
- 上传时自动生成完整的 CDN 文件路径并存储到 metadata
- 读取文件时优先使用 CDN,失败时自动回退到 S3 API
- 管理面板支持配置和查看 CDN 域名
- 文件详情页面新增 S3 CDN URL 标签页
2026-01-23 19:50:11 +08:00
MarSeventh ffb65ba2f6 Feat:telegram渠道支持设置代理;优化上传设置页面使用体验 2026-01-07 17:44:33 +08:00
MarSeventh 55fc4df02c Feat:访客图库体验优化;Discord渠道访问优化 2026-01-03 01:12:41 +08:00
MarSeventh 7a83e069fe Bug:修复Discord渠道文件失效问题 2026-01-02 13:11:24 +08:00
axibayuit 1e92c6de82 feat(discord): implement chunked upload for large files (>20MB)
- Add uploadSingleChunkToDiscord function with rate limit handling
- Add uploadChunkToDiscordWithRetry with 429 retry support
- Add mergeDiscordChunksInfo for chunk metadata assembly
- Add handleDiscordChunkedFile for streaming download
- Add fetchDiscordChunkWithRetry for reliable chunk fetching
- Discord uses 9MB chunks (vs 10MB for others) for safety margin
- Support Range requests for video seeking
- Support proxy URL for Discord CDN
2025-12-30 22:01:19 +08:00
axibayuit 2df7e1ebea feat: add HuggingFace storage channel support
- Add HuggingFace API wrapper class (huggingfaceAPI.js)
- Support upload, download, delete operations via HuggingFace Hub API
- Support public repos (unlimited storage) and private repos (100GB limit)
- Private repos: server proxies requests with Authorization header
- Auto-create repo if not exists (with write token)
- Add HuggingFace to auto-retry channel list
- Environment variables: HF_TOKEN, HF_REPO, HF_PRIVATE
- Support load balancing for multiple HuggingFace channels
2025-12-30 17:46:11 +08:00
axibayuit 9a0ab93790 feat: 添加 Discord 渠道支持
- 新增 Discord API 封装类 (discordAPI.js)
- 支持 Discord 文件上传(10MB 限制,超过自动切换其他渠道)
- 支持 Discord 文件读取和代理 URL(国内访问)
- 前端添加 Discord 渠道配置 UI(负载均衡、表单验证)
- 支持环境变量配置:DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, DISCORD_PROXY_URL
- 修复 sysConfig.js 中 Discord 渠道过滤
2025-12-30 15:08:19 +08:00
MarSeventh e445f05016 Feat:优化文件缓存策略 2025-09-10 11:59:41 +08:00
MarSeventh 2d64ec262d Feat:支持IOS端播放telegram渠道大体积视频,支持进度调整 2025-08-29 21:24:16 +08:00
MarSeventh ef5358d798 Feat:支持IOS端播放telegram渠道大体积视频,支持进度调整 2025-08-29 15:25:04 +08:00
Roddy bec0b96526 Update [[path]].js 2025-08-28 16:24:31 -04:00
Roddy 53d88f19fb Update fileTools.js 2025-08-28 15:54:09 -04:00
Roddy 22c73a4f75 Update fileTools.js 2025-08-28 15:52:46 -04:00
MarSeventh 567cda2312 Feat:适配D1数据库 2025-08-22 18:20:10 +08:00
初衷 50c87b1601 feat:同步代码 2025-08-20 08:53:33 +08:00
MarSeventh 84e6aeb558 Opt:优化中间件架构 2025-08-13 19:26:30 +08:00
初衷 dbea752676 fix:所有模块导入/导出的兼容性问题 2025-08-13 19:09:01 +08:00