Skip to content

feat(foxel): add Foxel storage backend - #3188

Draft
DrizzleTime wants to merge 3 commits into
OpenListTeam:mainfrom
DrizzleTime:main
Draft

DrizzleTime wants to merge 3 commits into
OpenListTeam:mainfrom
DrizzleTime:main

Conversation

@DrizzleTime

Copy link
Copy Markdown

Summary / 摘要

新增 Foxel 存储驱动,让 OpenList 可以通过 Foxel HTTP API 挂载其虚拟文件系统。

  • 支持目录浏览、页码及游标分页、本地排序。
  • 支持用户名和密码登录、令牌过期后自动重新认证,以及手动配置 Bearer Token。
  • 支持临时链接下载原始文件,保留 Foxel 返回的下载域名,并兼容反向代理路径前缀。
  • 支持流式上传、覆盖上传、进度反馈、上传限速及请求取消。
  • 支持创建目录、重命名、复制、移动和删除;异步传输会等待任务完成并返回失败原因。
  • 新增驱动配置:url、root_folder_path、username、password、token、page_size(默认 200)和 link_expire(默认 3600 秒)。

兼容性说明:Foxel 实例需要提供 /api/fs/download-public/{token}/{filename} 原始文件下载接口。仅使用 Token 时,令牌过期需要手动更新。取消 OpenList 请求会停止本地请求和轮询,但不会取消 Foxel 已接受的后台传输任务。

  • This PR has breaking changes.
    / 此 PR 包含破坏性变更。

  • This PR changes public API, config, storage format, or migration behavior.
    / 此 PR 修改了公开 API、配置、存储格式或迁移行为。

    新增 Foxel 驱动配置项,不涉及现有存储格式或迁移行为变更。
    
  • This PR requires corresponding changes in related repositories.
    / 此 PR 需要关联仓库同步修改。

Related repository PRs / 关联仓库 PR:

  • OpenList-Frontend: 不需要,使用现有驱动配置界面。
  • OpenList-Docs: 暂无。

Testing / 测试

检查环境:Linux x86_64。

  • git diff --check 通过。

  • 已检查最终五个文件的改动和驱动注册入口。

  • go test ./...

  • Manual test / 手动测试: 暂未执行。

Checklist / 检查清单

  • I have read CONTRIBUTING.
    / 我已阅读 CONTRIBUTING。
  • I confirm this contribution follows the repository license, contribution policy, and code of conduct.
    / 我确认此贡献符合仓库许可证、贡献规范和行为准则。
  • I have formatted the changed code with gofmt, go fmt, or prettier where applicable.
    / 我已按适用情况使用 gofmt、go fmt 或 prettier 格式化变更代码。
  • I have requested review from relevant maintainers or code owners where applicable.
    / 我已在适用情况下请求相关维护者或代码所有者审查。

AI Disclosure / AI 使用声明

  • This PR includes AI-assisted content.
    / 此 PR 包含 AI 辅助内容。

Tools used / 使用工具:

  • ChatGPT
  • Codex
  • GitHub Copilot
  • Claude
  • Gemini
  • Other (please specify) / 其他(请注明):

Usage scope / 使用范围:

  • Code generation / 代码生成
  • Refactoring / 重构
  • Documentation / 文档
  • Tests / 测试
  • Translation / 翻译
  • Review assistance / 审查辅助

Codex 参与了 Foxel 驱动实现、代码检查及 PR 准备。功能提交和清理提交均包含:

Co-authored-by: Codex <267193182+codex@users.noreply.github.com>

以下未勾选的验证项目尚未确认完成。

  • I have reviewed and validated all AI-assisted content included in this PR.
    / 我已审核并验证此 PR 中的所有 AI 辅助内容。
  • I have ensured that all AI-assisted commits include Co-Authored-By attribution.
    / 我已确保所有 AI 辅助提交都包含 Co-Authored-By 归属信息。
  • I can reproduce all AI-assisted content included in this PR without any AI tools.
    / 我可以在没有任何 AI 工具的情况下重现此 PR 中包含的所有 AI 辅助内容。

DrizzleTime and others added 3 commits October 5, 2026 16:13
- Register the Foxel driver with Bearer authentication and automatic reauthentication.
- Support paged and cursor listings, original downloads, streaming uploads, and file operations.
- Wait for asynchronous Foxel transfers and propagate errors and cancellation.
- Add HTTP regression tests, driver CI, and setup documentation.

Co-authored-by: Codex <267193182+codex@users.noreply.github.com>
feat(foxel): add Foxel storage backend
- Remove the Foxel-specific GitHub Actions workflow.
- Remove the README and test file from the Foxel driver directory.

Co-authored-by: Codex <267193182+codex@users.noreply.github.com>
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.

1 participant