rocketBANG55 downloadsPick an image, upload it to Cloudflare R2, and insert it inline or set it as the note's image property.
Obsidian plugin: adds commands to pick an image on your device, upload it to Cloudflare R2, and drop it into the current note — either as an inline embed or as a frontmatter property.
Works on desktop and mobile (signing is done on-device with the Web Crypto API; no SDKs, no CORS setup needed on the bucket).
 at the cursor.image frontmatter property (name configurable) to the public URL.https://<account-id>.r2.cloudflarestorage.com), bucket name, path template, and the public base URL.Object keys follow the path template (default /{year}/{mon}/{day}/{filename}), with a short random suffix added to the filename to avoid collisions.
Note: like most uploader plugins, credentials are stored in plaintext in the plugin's
data.jsoninside your vault. Scope the R2 token to the one bucket, and keep that file out of any git repo your vault lives in.
Add rocketBANG/obsidian-image-attachment-upload as a beta plugin in BRAT.
Copy main.js, styles.css, and manifest.json into <vault>/.obsidian/plugins/image-attachment-upload/.
Requires NodeJS v22.13+ and pnpm 11.
pnpm i to install dependencies.pnpm run dev to start compilation in watch mode (produces main.js).pnpm run build for a production build.pnpm run lint to lint.pnpm version patch (or minor / major) after updating minAppVersion manually in manifest.json if needed — this bumps manifest.json, package.json, and versions.json.v prefix); the release workflow builds the plugin and drafts a GitHub release with main.js, manifest.json, and styles.css attached.