Bunny Publisher

approved

by ericmwalk

This plugin has not been manually reviewed by Obsidian staff. Upload images, videos, and files to Bunny.net storage.

10 downloadsUpdated 4d agoMIT

Bunny Publisher

Bunny Publisher allows you to upload images and other media directly from Obsidian to your Bunny.net Storage Zone or custom CDN hostname (e.g., cdn.myawesomewebite.lol). This plugin simplifies media management by automatically handling upload paths, URL generation, and optional local cleanup seamlessly integrating with your content workflows.


Configuration Screenshot

Bunny Publisher settings interface with configuration options.


Features

  • Upload images and media files directly to Bunny.net Storage Zones.
  • Automatically convert Obsidian-style embeds (![[image.png]]) into Markdown image links (![Alt text](https://cdn.runs.lol/media/2025/11/image.png)).
  • Support dynamic upload paths with date placeholders (e.g., media/{{YYYY}}/{{MM}}).
  • Optionally delete local image files after successful upload.
  • Specify a custom CDN hostname for generated URLs.
  • Automatically sanitize and preserve filenames for clean, consistent URLs.
  • Real-time progress updates during uploads.
  • Optionally generate alt-text using OpenAI, Google Gemini, or Perplexity (API key required).

Setup

  1. Clone or download this repo into your Obsidian .obsidian/plugins/ folder.
  2. Run npm install and npm run build to compile the plugin.
  3. Enable the plugin inside Obsidian.
  4. Configure your Bunny.net API key, storage zone name, region, CDN hostname, and upload path pattern in the settings panel.

Upload Paths

You can define a dynamic upload structure using placeholders in your settings:

  • {{YYYY}} – Year of upload (e.g., 2025)
  • {{MM}} – Month of upload (e.g., 11)
  • Example: media/{{YYYY}}/{{MM}}media/2025/11/

Usage

  • Use the "Upload Images to Bunny.net" command from the Command Palette or assign a hotkey.
  • The plugin scans your active note for local image embeds and uploads them.
  • After upload, the local embeds are automatically replaced with CDN URLs.
  • If enabled, local files are deleted after a successful upload.

Example Workflow

Before upload:

![[running-photo.png]]

After upload:

![Running photo](https://cdn.runs.lol/media/2025/11/running-photo.png)

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.