Paste to S3

approved

by ClaudiaFang

Upload images to any S3-compatible storage. Features: WebP conversion, image compression, text & logo watermark with live preview. - This plugin has not been manually reviewed by Obsidian staff.

2 stars124 downloadsUpdated 18d agoMIT

Paste to S3

Paste an image. It's optimized, uploaded, and linked automatically.

CI Release Downloads License

Releases · 繁體中文 · Changelog

Previously Watermark Bucket Uploader. Existing installations and settings continue to work normally.

A zero-friction image uploader for Obsidian with S3-compatible storage, WebP conversion, compression, and optional watermarks. This plugin intercepts every paste and drop, optimizes the image, uploads it to your own S3-compatible bucket, and drops a clean ![](url) right into your note. Your images, your infrastructure.

Paste / Drop
    ↓
Optimize & Compress
    ↓
Convert to WebP
    ↓
Optional Watermark
    ↓
Upload to S3-compatible storage
    ↓
Insert Markdown link

Cloudflare R2 AWS S3 MinIO Backblaze B2

Watermark settings live preview The Live Preview shows your text and logo watermark exactly as it will be applied — if you choose to enable one.

Why Paste to S3

  • Paste and keep writing — paste or drag an image and it's already in your bucket. No menus, no dialogs.
  • Your storage, not someone else's service — works with any S3-compatible bucket you already own and control. Bring your own storage.
  • Smaller files, faster pages — automatic WebP conversion and compression keep your storage lean and your site fast.
  • Optional watermarking — overlay custom text or a logo when you want one, with font, size, color, opacity, position, and a live preview. Watermarking can be disabled entirely.
  • Works with any S3-compatible storage — Cloudflare R2, AWS S3, MinIO, Backblaze B2, and more.
  • Keeps your private notes private — glob-based ignore patterns let you exclude specific folders from ever being uploaded.
  • Not just images — optionally upload video, audio, and PDFs the same way.

Installation

From Community Plugins (recommended)

  1. Open Settings → Community plugins and turn off restricted mode.
  2. Click Browse, search for Paste to S3, click Install, then Enable.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Create <vault>/.obsidian/plugins/watermark-bucket-uploader/.
  3. Copy the three files into that folder.
  4. Reload Obsidian and enable the plugin under Settings → Community plugins.

Quick start

  1. Install Paste to S3.
  2. Open Settings → Paste to S3 and fill in your S3-compatible storage credentials (see Storage).
  3. Set your public image URL.
  4. Paste or drag an image into any note — it's optimized, uploaded, and a ![](url) link is inserted automatically.

Optional: configure compression, WebP, watermarking, upload-on-drag, and folder exclusions. For a step-by-step walkthrough on setting up Cloudflare R2 and configuring watermarks, see the Cloudflare R2 & Watermarks Setup Guide.

Configuration

Storage

Bring your own storage. Paste to S3 works with any S3-compatible provider — AWS S3, Cloudflare R2, MinIO, Backblaze B2, or any other S3-compatible endpoint.

FieldDescription
Access KeyS3 / R2 access key ID
Secret KeyS3 / R2 secret access key (stored securely in local storage)
RegionBucket region (auto for Cloudflare R2)
S3 BucketYour bucket name
Bucket FolderOptional path prefix — supports ${year}, ${month}, ${day}, ${basename}
Custom EndpointRequired for R2 and non-AWS providers
Custom Image URLPublic URL base, e.g. your CDN or custom domain

Cloudflare R2 quick setup

  1. Create a bucket in the R2 dashboard.
  2. Generate an API token with Object Read & Write permissions.
  3. Set Custom Endpoint to https://<account-id>.r2.cloudflarestorage.com.
  4. Set Region to auto.
  5. Set Custom Image URL to your public bucket domain.

Watermark (optional)

Watermarking is off by default and can be disabled entirely — skip this section if you don't need it. When enabled, open the Live Preview in settings to see changes in real time.

FieldDescription
Text WatermarkToggle text overlay
Texte.g. © yourdomain.com
Font / Size / Style / ColorFull typography control; size 0 = auto (2% of image width)
Logo WatermarkToggle image overlay
Logo PathVault-relative path, e.g. _assets/logo.png
Logo Size / OpacityScale (% of image width) and transparency (0–1)
PositionBottom Right, Bottom Left, Bottom Center, or Center
Offset X/YFine-tune placement (±% of image dimensions)
Preview ResCanvas resolution for preview accuracy (720p–4K)

Daily workflow

ActionResult
Ctrl/Cmd+V in any noteIntercepts the image, processes it, uploads, inserts ![](url)
Drag & drop onto the editorSame pipeline (enable "Upload on drag" in settings)
Command Palette → Upload imagePick a local file to upload manually
Auto-upload on createAny image added to your vault is uploaded and removed locally

Privacy and security

  • Local storage — bucket credentials are stored locally in the plugin's data folder inside your vault, and are only ever sent to the storage endpoint you configured.
  • No telemetry — the plugin collects no usage data or analytics.

Requirements

  • Obsidian 1.6.6 or later
  • Desktop and mobile supported

Development

git clone https://github.com/firstsun-dev/watermark-bucket-uploader.git
npm install

npm run dev    # watch build
npm run build  # type-check + production build
npm run test   # vitest suite
npm run lint   # eslint

License

MIT


Created by ClaudiaFang

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.