Skip to content

feat(drivers): add Bunny Storage driver#2472

Open
demogest wants to merge 3 commits into
OpenListTeam:mainfrom
demogest:bunny-storage-driver
Open

feat(drivers): add Bunny Storage driver#2472
demogest wants to merge 3 commits into
OpenListTeam:mainfrom
demogest:bunny-storage-driver

Conversation

@demogest

@demogest demogest commented May 12, 2026

Copy link
Copy Markdown

Description / 描述

Add a new Bunny Storage driver for OpenList.

新增 Bunny Storage 驱动。

Main changes / 主要变更:

  • 支持 Bunny Storage 的列表、上传、下载、创建目录、删除和按路径获取对象。
  • 支持可选 CDN 下载链接,并支持 Bunny CDN Token 签名。
  • 生成 CDN URL 时正确处理 OpenList 挂载路径。

Motivation and Context / 背景

新增Bunny.net的Storage支持,并同步支持Bunny.net CDN。

How Has This Been Tested? / 测试

  • Ran gofmt.
    已运行 gofmt
  • Ran go test ./drivers/bunny_storage ./drivers.
    已运行 go test ./drivers/bunny_storage ./drivers
  • Started OpenList locally and verified the driver appears in the admin driver list.
    已在本地启动 OpenList,并确认该驱动出现在后台驱动列表中。

Checklist / 检查清单

  • I have read the CONTRIBUTING document.
    我已阅读 CONTRIBUTING 文档。
  • I have formatted my code with go fmt or prettier.
    我已使用 go fmtprettier 格式化提交的代码。
  • I have added appropriate labels to this PR (or mentioned needed labels in the description if lacking permissions).
    Needed labels: Module: Driver, enhancement.
  • I have requested review from relevant code authors using the "Request review" feature when applicable.
    Draft PR: review will be requested after the direction is confirmed.
  • I have updated the repository accordingly (If it’s needed).
    Backend-only driver change; no frontend repository change is required.

Add Bunny Storage API support with optional CDN links and token signing.

Cover CDN mount path handling, token signing, and proxy/cache behavior with unit tests.
@demogest demogest marked this pull request as ready for review May 12, 2026 16:13
Comment thread drivers/bunny_storage/driver.go

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Bunny Storage backend driver to OpenList, including storage API operations and optional CDN-based download links with token signing.

Changes:

  • Introduces Bunny Storage driver configuration, registration, object models, API helpers, and CRUD/link behavior.
  • Adds CDN URL generation and optional SHA256/HMAC-SHA256 token signing support.
  • Adds unit tests for URL construction, CDN path handling, signing, link caching, and proxy configuration.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
drivers/all.go Registers the Bunny Storage driver in the driver import list.
drivers/bunny_storage/meta.go Defines driver metadata and configurable Bunny Storage/CDN options.
drivers/bunny_storage/types.go Adds Bunny API response and internal timestamp helper types.
drivers/bunny_storage/driver.go Implements listing, linking, upload, directory creation, deletion, and path lookup.
drivers/bunny_storage/util.go Adds URL normalization, path handling, response parsing, object conversion, and CDN signing helpers.
drivers/bunny_storage/util_test.go Adds tests covering storage/CDN URL behavior, signing, link expiration, and proxy configuration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread drivers/bunny_storage/util.go

@PIKACHUIM PIKACHUIM left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢您的支持,本PR内容已由媒体库实现#2210

后期会等插件化后一起兼容媒体库播放后合并

@xrgzs xrgzs changed the title feat(driver/bunny_storage): add Bunny Storage driver feat(drivers): add Bunny Storage driver Jun 17, 2026
@xrgzs xrgzs added the Module: Driver Driver-Related Issue/PR label Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Module: Driver Driver-Related Issue/PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants