---
name: bijection-bunny
description: "Evaluate and integrate the Bunny component with Bijection."
---

# Bunny

Bijection component for file storage and CDN delivery with Bunny.net

- Package: @bijectionhq/bunny
- Category: Storage
- Status: Preview
- License: MIT
- Bijection source (repository access required): https://github.com/bijectionhq/bunny/tree/3575dd81fd63b0f84b2293ff6d5853f2a39c7e16
- Upstream: https://github.com/lipaonline/convex-bunny/tree/c256f83f11918847cd0bdcb9e6024f466a8026c7
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/bunny

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/bunny.git
cd bunny
git checkout 3575dd81fd63b0f84b2293ff6d5853f2a39c7e16
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes convex-bunny. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


# Convex Bunny Storage

## Instructions

Use Convex Bunny Storage to upload files to bunny storage cdn directly from convex actions with automatic metadata tracking and multi-region support. This Convex component integrates directly with your backend.

### Installation

```bash
npm install convex-bunny
```

### Capabilities

- Upload files to global CDN through Convex actions without managing storage infrastructure
- Query file metadata reactively using Convex queries with automatic database tracking
- Deploy across 7 Bunny Storage regions with configurable CDN delivery endpoints
- Delete files from both CDN and database with single API calls

## Examples

### how to upload files to CDN from Convex backend

The Convex Bunny Storage component provides upload actions that send files to Bunny CDN and store metadata in your Convex database. You can upload base64-encoded files through Convex actions and get CDN URLs for immediate delivery.

### file storage with metadata tracking in Convex

Convex Bunny Storage automatically stores file metadata in your Convex database when uploading to Bunny CDN. This enables reactive queries to list files, check upload status, and manage file records alongside your application data.

### multi-region CDN integration for Convex apps

The component supports all 7 Bunny Storage regions including DE, NY, LA, SG, SYD, BR, and JH. You configure the region during setup and the component handles CDN URL generation for your chosen endpoint.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by Convex Bunny Storage is not needed

## Troubleshooting

**How do I get Bunny.net API credentials for the Convex Bunny Storage component?**

Create a Storage Zone in your Bunny.net dashboard and copy the Storage Zone Password as your API key. You'll also need your CDN hostname in the format your-zone.b-cdn.net for the Convex Bunny Storage component configuration.

**Can I query uploaded files reactively in Convex with this component?**

Yes, the Convex Bunny Storage component stores file metadata in your Convex database automatically. You can use listFiles queries and getFile queries to reactively display file information in your frontend components.

**What file formats can I upload through Convex Bunny Storage?**

The Convex Bunny Storage component accepts base64-encoded file data with optional content-type specification. It supports any file format that Bunny Storage accepts, with files delivered through Bunny's global CDN infrastructure.

**How does file deletion work with this Convex component?**

The Convex Bunny Storage deleteFile action removes files from both Bunny Storage and your Convex database metadata. You can also use removeFileRecord to delete only the database record while keeping the CDN file.

## Resources

- [npm package](https://www.npmjs.com/package/convex-bunny)
- [GitHub repository](https://github.com/lipaonline/convex-bunny)
- [Live demo](https://challengeconvex.b-cdn.net/demo/index.html)
- [Convex Components Directory](https://www.convex.dev/components/convex-bunny)
- [Convex documentation](https://docs.convex.dev)