feat(driver/bunny_storage): add Bunny Storage driver#2472
Open
demogest wants to merge 2 commits into
Open
Conversation
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.
j2rong4cn
reviewed
May 12, 2026
Contributor
There was a problem hiding this comment.
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.
| } | ||
| if t, err := time.Parse(time.RFC3339Nano, value); err == nil { | ||
| return t | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description / 描述
Add a new
Bunny Storagedriver for OpenList.新增
Bunny Storage驱动。Main changes / 主要变更:
Motivation and Context / 背景
新增Bunny.net的Storage支持,并同步支持Bunny.net CDN。
How Has This Been Tested? / 测试
gofmt.已运行
gofmt。go test ./drivers/bunny_storage ./drivers.已运行
go test ./drivers/bunny_storage ./drivers。已在本地启动 OpenList,并确认该驱动出现在后台驱动列表中。
Checklist / 检查清单
我已阅读 CONTRIBUTING 文档。
go fmtor prettier.我已使用
go fmt或 prettier 格式化提交的代码。Needed labels:
Module: Driver,enhancement.Draft PR: review will be requested after the direction is confirmed.
Backend-only driver change; no frontend repository change is required.