Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Image Uploader For Note

yy4382yy43821k downloads

Upload images in a note, and remove the images from the vault if they're exclusively used within that note.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates4

An Obsidian plugin for uploading images in notes!

It uploads local images in a note to S3 (and S3 compatible services), replace the image link with the S3 link, and remove the images from the vault if they're exclusively used within that note. (optional).

Or, instead of S3, you can write a custom function to upload the image via Custom JS plugin.

Usage

[!NOTE] This plugin is still in waiting for approval to be listed in the official community plugins. Track the progress here. For now, you can download the latest release from the releases page and install it manually.

Use the button on Ribbon or the command palette to upload images in currently opened note.

Use S3 uploader

  1. Fill in the S3 configuration in the settings.
  2. Leave the Custom Uploader Class option empty.

Use custom uploader

You need to install the Custom JS plugin first.

Add a class to your custom js file, which need to have a function named upload, with the following signature:

async function upload(
    binary: ArrayBuffer,
    tFile: Pick<TFile, "basename" | "extension" | "name" | "path">
): Promise<string>;

And then set the Custom Uploader Class option in the settings to the class name.

For example, if you have a class named CustomUploader in your custom js file:

class CustomUploader {
    async upload(
        binary /* ArrayBuffer */,
        file /* Pick<TFile, "basename" | "extension" | "name" | "path"> */
    ) {
        console.log(file.name, file.path);
        // https://docs.obsidian.md/Reference/TypeScript+API/requestUrl
        await requestUrl({
            url: `https://api.example.com/upload?path=${encodeURIComponent(
                file.path
            )}`,
            method: "POST",
            body: binary,
        });
        return `https://example.com/${file.path}`;
    }
}

Then set the Custom Uploader Class option in the settings to CustomUploader.

What the difference between this plugin and others?

  • this plugin can remove the local images from the vault if they're exclusively used within that note (and this behaviour is optional). This is useful if you want to keep your vault clean.
  • this plugin is more flexible, you can write your own uploader class to upload images to any service you want.
  • upload images by manually trigger, not when pasting images. This prevents uploading images that you don't want to upload.
HealthGood
ReviewSatisfactory
About
Upload local images in the current note to S3 or a custom JS uploader and replace Markdown image links with the uploaded URLs. Remove local image files from the vault when they are only referenced in that note to keep the vault clean.
ImagesAttachmentsIntegrations
Details
Current version
1.0.3
Last updated
Last year
Created
2 years ago
Updates
4 releases
Downloads
1k
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
yy4382yy4382
yfi.moe
GitHubyy4382
  1. Community
  2. Plugins
  3. Images
  4. Image Uploader For Note

Related plugins

Image auto upload

Upload images from your clipboard by PicGo.

Ink

Handwriting and drawing directly between paragraphs using a digital pen, stylus, or Apple pencil.

Paste image rename

Rename image after pasting, support name pattern and auto renaming.

Imagine

A comprehensive image management plugin for managing, inserting, resizing, viewing, and batch processing images.

Pixel Perfect Image

Pixel perfect 100% image resizing, copy to clipboard, show image in Finder/Explorer, and much more.

BRAT

Easily install a beta version of a plugin for testing.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.