Image Upload Pipeline

by lifeisstrange
5
4
3
2
1
Score: 35/100
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Automatically transform pasted or dropped images, upload them to a configurable API, and insert the returned URL.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Image Upload Pipeline

Image Upload Pipeline is an Obsidian plugin that automatically handles images pasted or dropped into the editor. It can resize, compress, or convert images before uploading them to a configurable multipart/form-data API, then inserts the returned URL as Markdown.

Features

  • Upload images pasted from the clipboard or dropped into the editor.
  • Send files to any compatible multipart/form-data POST endpoint.
  • Configure custom HTTP headers for API tokens or authentication.
  • Extract the uploaded image URL from JSON responses with dot-path syntax, such as url, data.link, or 0.src.
  • Optionally resize images and convert static images to JPEG, PNG, or WebP before upload.
  • Preserve unsupported transform targets such as SVG, animated GIF, and ICO by uploading the original file.
  • Upload multiple images concurrently while preserving insertion order.
  • Optionally insert uploaded images as an inline HTML gallery that auto-splits row width across adjacent images.
  • Bilingual settings UI for English and Chinese Obsidian interfaces.

Compatibility

Image Upload Pipeline requires Obsidian 1.13.0 or newer.

Installation

Community Plugins

After the plugin is approved in the Obsidian community plugin directory:

  1. Open SettingsCommunity plugins.
  2. Search for Image Upload Pipeline.
  3. Install and enable the plugin.

Manual Install

  1. Download main.js, manifest.json, and styles.css from a GitHub release.
  2. Create this folder in your vault:
.obsidian/plugins/image-upload-pipeline/
  1. Put the three downloaded files into that folder.
  2. Reload Obsidian and enable Image Upload Pipeline.

Configuration

Open the plugin settings and configure:

Setting Description
API endpoint The POST endpoint that receives multipart/form-data uploads.
File field name The form field name for the image file. The default is file.
Image URL path Dot path used to extract the final image URL from the JSON response.
HTTP headers Optional request headers, such as Authorization.
Image transform Optional resize, compression, and format conversion before upload.
Auto inline gallery Insert plugin-generated HTML images and merge adjacent images with no blank line into one row.

Content-Type is generated automatically for multipart uploads and cannot be overridden in the settings.

CloudFlare ImgBed Example

For MarSeventh/CloudFlare-ImgBed, a typical configuration is:

Setting Value
API endpoint https://your-domain.example/upload?returnFormat=full
File field name file
Image URL path 0.src
Header name Authorization
Header value Bearer your_imgbed_api_token

If you want to force a specific CloudFlare ImgBed upload channel, add a query parameter such as:

&uploadChannel=cfr2

Privacy And Network Usage

The plugin sends image files only to the API endpoint you configure. It does not collect telemetry and does not send files to any built-in third-party service.

API keys or tokens configured in headers are stored in Obsidian plugin data for your local vault. Treat that vault configuration as sensitive.

Development

npm install
npm run build

The production build outputs main.js in the repository root. For release, upload these files as GitHub release assets:

  • main.js
  • manifest.json
  • styles.css

The release tag must match the version in manifest.json. Pushing a tag in x.y.z format runs the release workflow and uploads those assets automatically.