S3 Image Uploader

by jvsteiner
5
4
3
2
1
Score: 61/100

Description

The S3 Image Uploader plugin for Obsidian enables seamless uploading of images and other media directly to your own S3-compatible storage. Users can specify custom buckets, folders, and access settings to ensure media files are stored securely and accessible as needed. The plugin supports clipboard pasting, drag-and-drop uploads, and YAML frontmatter configuration for tailored behaviors in individual notes. Additional features include optional local storage for uploads, integration with S3-compatible providers, and support for video, audio, and PDF files. This is a versatile tool for users who require custom storage solutions for their Obsidian media assets.

Reviews

No reviews yet.

Stats

87
stars
8,027
downloads
30
forks
1,235
days
143
days
143
days
23
total PRs
4
open PRs
3
closed PRs
16
merged PRs
29
total issues
3
open issues
26
closed issues
25
commits

Latest Version

5 months ago

Changelog

Release 0.2.47

README file from

Github

S3 Image Uploader

This is a plugin for Obsidian. It was generated based on the standard plugin template.

This project implements an image uploader, similar to others offered by the community, with one important difference: you can provide your own s3 based storage, instead of relying on a third party service, such as imgur.

This plugin is supported by advertisements.

Note: this plugin is still in development, and there may be some bugs. Please report any issues you find.

It was inspired by the awesome Markdown editor, Typora, and the following Obsidian plugins:

Usage

You have to set up your own s3 bucket, and provide the following information to the plugin:

  • accessKeyId: the access key ID for an s3 user with write access to your bucket
  • secretAccessKey: the secret access key for the s3 user
  • region: the region of your bucket
  • bucket: the name of your bucket (must already exist)
  • folder: the folder in your bucket where you want to store the images (optional, and will be created on the fly if it does not exist.)

If you want others to be able to view the images, you need to make your bucket world readable. You can do this by adding the following policy to your bucket:

{
	"Version": "2008-10-17",
	"Statement": [
		{
			"Sid": "PublicReadGetObject",
			"Effect": "Allow",
			"Principal": "*",
			"Action": "s3:GetObject",
			"Resource": "arn:aws:s3:::<your-bucket>/*"
		}
	]
}

You also need to set up a CORS policy for the bucket:

[
	{
		"AllowedHeaders": ["*"],
		"AllowedMethods": ["GET", "PUT", "POST", "DELETE"],
		"AllowedOrigins": ["*"],
		"ExposeHeaders": []
	}
]

You also need to set up a user with write access to your bucket. You can do this by creating a new user in the IAM console, and attaching the AmazonS3FullAccess policy to it. More granular access control policies are possible, but this is the simplest way to get started.

When you paste an image from the clipboard into the Obsidian note, the plugin will upload the image to your bucket, and insert a link to the image in your note. The link will be of the form https://<your-bucket>.s3.<your-region>.amazonaws.com/<your-optional-folder>/<image-name>. If you have made your bucket world readable, you can share the link with others, and they will be able to view the image.

If you select the "Upload on drag" option in the plugin settings, the plugin will also upload images that you drag into the note - as well as video, audio files and pdfs. This is useful if you want to upload these media from your file system.

If you do not want this behavior in all notes, you can customize it on a per note basis.

  1. You can add an uploadOnDrag YAML frontmatter tag to the note, as seen below.
  2. You can also set the localUpload option to true, which will copy the images to a folder in your local file system, instead of uploading them to the cloud, overriding the global setting.
  3. You can also set note specific folder where the images will be uploaded to, by adding the localUploadFolder option to the YAML frontmatter. This overrides the global setting.

These settings override the global settings. The uploadOnDrag tag affects both S3 and local uploads. The other two options only affect local uploads.

---
uploadOnDrag: true
localUpload: true
localUploadFolder: "my-folder"
---

Development

PR's are welcome, features that I would like to add include:

  • Add support for other cloud storage providers, such as Google Drive, Dropbox, etc.
  • Add support for copying images to a configurable folder in the local file system, instead of uploading them to the cloud.
  • Add support for dynamically moving images between the options above, through hotkeys.
  • Add support for automatically creating buckets if they do not exist.
  • Add support for s3 compatible storage
  • Add support for video, audio, and pdf upload and embedding.

Releasing new releases

Update your manifest.json with your new version number, such as 1.0.1, and the minimum Obsidian version required for your latest release.

Update your versions.json file with "new-plugin-version": "minimum-obsidian-version" so older versions of Obsidian can download an older version of your plugin that's compatible.

Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix v. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases

Upload the files manifest.json, main.js, styles.css as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release.

Publish the release.

You can simplify the version bump process by running npm version patch, npm version minor or npm version major after updating minAppVersion manually in manifest.json. The command will bump version in manifest.json and package.json, and add the entry for the new version to versions.json

npm version patch

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Add links to current note
6 years ago by MrJackphil
This plugin adds a command which allows to add a link to the current note at the bottom of selected notes
Adjacency Matrix Maker
5 years ago by SkepticMystic
Creative an interactive adjacency matrix of your Obsidian vault
AI Tagger
2 years ago by Luca Grippa
Simplify tagging in Obsidian. Instantly analyze and tag your document with one click for efficient note organization.
Alias Management
2 years ago by WithMarcel
Identify duplicate notes based on similar aliases and filenames in Obsidian.
Another Sticky Headings
2 years ago by Zhou Hua
Antidote Grammar Checker Integration
3 years ago by Heziode
An Obsidian integration of Antidote, a powerful grammar checker
Attachment Uploader
3 years ago by zhuxining
An attachment uploader plugin for Obsidian
Augmented Canvas
2 years ago by Léopold Szabatura
Supercharge your Obsidian canvas experience with AI features.
Auto Definition Link
2 years ago by Nolan Carpenter
This is a plugin for Obsidian to automatically create links to blocks in your vault
BookFusion
2 years ago by BookFusion
BookFusion Obsidian Plugin
Canvas Mindmap Helper
2 years ago by Tim Smart
Clojure Plugin Host
a year ago by Vladimir "farcaller" Pouzanov
A Clojure plugin host, allowing the creation of simple Clojure-based plugins right inside Obsidian
Cloudinary Uploader
5 years ago by Jordan Handy
An uploader for Obsidian to Cloudinary
Dangerzone Writing
6 years ago by Alexis Rondeau
A plugin that forces you to write for X seconds. If you pause for more than 5 seconds, everything you've written in this note is DELETED.
Discord Rich Presence
6 years ago by Luke Leppan
Update your Discord Status to show your friends what you are working on in Obsidian. With Discord Rich Presence.
Discordian Theme
5 years ago by @radekkozak
Discordian plugin for tweaking Discordian theme
Ego Rock
2 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
Electron Window Tweaker
5 years ago by mgmeyers
EUpload
a year ago by Appleex
Obsidian 插件,专用于上传文件到存储仓库。目前支持 Lskypro(兰空图床),后续有需求会引入其它存储方式,如:Github/Gitee等等。
Expiration-Date-Tracker
3 years ago by Marius Wörfel
Opsidian plugin to keep track of all expiration dates, for example, for your groceries.
Footlinks
6 years ago by Daha
Obsidian plugin that extracts urls from the main text to footer, offering a better reading/editing experience.
Gitlab Wiki Exporter
2 years ago by Josef Rabmer
Google Drive Sync
2 years ago by Richard Xiong
A plugin to make Obsidian work in Google Drive to enable access to iOS.
Hash Pasted Image
2 years ago by Minh Vương
Auto rename pasted images added to the vault via hash algorithm SHA-512
Hide Sidebars on Window Resize
5 years ago by NomarCub, Michael Hanson
A simple Obsidian plugin to hide the sidebars when the window gets narrow.
Hugo codeblock highlight
2 years ago by aarol
Highlights lines in code blocks using Hugo's hl_lines syntax
Image Embedder
a year ago by Natalie Sumbo
Image to text OCR
2 years ago by Dario Baumberger
Convert a image in your note to text.
Image Upload Toolkit
3 years ago by Addo Zhang
An obsidian plugin for uploading local images embedded in markdown to remote store and export markdown for publishing to static site.
Image Uploader
5 years ago by Creling
Image Uploader For Note
2 years ago by Yunfi
Upload images in a note, and if the image is only used in this note, delete it from vault.
ImgBB Uploader
2 years ago by Jordan Handy
An image uploader to imgBB for Obsidian
Imgur
5 years ago by Kirill Gavrilov
Pastes images right to imgur.com
Immich
2 years ago by Talal Abou Haiba
InlineCodeHighlight
3 years ago by Dimava
JavaScript Init
5 years ago by ryanpcmcquen
Run custom JavaScript in Obsidian.
Lineage
2 years ago by ycnmhd
Gingko-like interface in obsidian
Link indexer
6 years ago by Yuliya Bagriy
Markdown Furigana
5 years ago by Steven Kraft
Simple Markdown to Furigana Rendering Plugin for Obsidian
Markdown Media Card
2 years ago by Zhou Hua
Metadata Icon
2 years ago by Benature
change metadata entry icon
Minio Uploader
3 years ago by Seebin
Upload images, videos, audio, pdf, and other files to Minio OSS.
Mochi Cards Exporter
5 years ago by kalbetre
Mochi Cards Exporter Plugin for Obsidian
Movie Search
2 years ago by Gubchik123
Obsidian plugin to help you create movie notes.
Mxmind Mindmap
2 years ago by mxmind
mxmind for obsidian plugin
Nexus AI Chat Importer
2 years ago by Superkikim
NotePix
10 months ago by Ayush Parkara
NotePix automatically uploads images, screenshots from your Obsidian vault to a designated GitHub repository. It then seamlessly replaces the local link with a fast URL, keeping your vault lightweight and portable.
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
oblogger
3 years ago by loftTech
tag explorer and frontmatter logger plugin for obsidian
Open cards in imdone.
5 years ago by saxmanjes
Open cards in imdone from obsidian
Orion Publish
2 years ago by Sean Collings
PARA Workflower
2 years ago by KevTheDevX
Helpful commands for starting and working in your vault with the PARA method.
PF2e Statblocks
2 years ago by Tyler Pixley
Allows Obsidian to render Pathfinder 2e statblocks cleanly, using only Markdown-based syntax.
Plugin Reloader
2 years ago by Benature
manual reload plugins
Prompt ChatGPT
2 years ago by Coduhuey
Quadro
2 years ago by Chris Grieser (aka pseudometa)
Obsidian Plugin for social-scientific Qualitative Data Analysis (QDA). An open alternative to MAXQDA and atlas.ti, using Markdown to store data and research codes.
Readwise Community
5 years ago by renehernandez
Sync Readwise highlights into your obsidian vault
Regex Pipeline
5 years ago by No3371
An Obsidian plugin that allows users to setup custom regex rules to automatically format notes.
Relay
2 years ago by System 3
Multiplayer Mode for Obsidian
S3 attachments storage
3 years ago by TechTheAwesome
An Obsidian plugin for storage and retrieval of media attachments on S3 compatible services.
S3agle
2 years ago by Turner Monroe (turnercore)
Search on Internet
5 years ago by Emile
Add context menu items in Obsidian to search the internet.
Show Current File Path
5 years ago by Ravi Mashru
Obsidian plugin to show the file path of the current file in the status bar
simple-sketch
2 years ago by Yoh
an Obsidian plugin to create minimal sketches
Suggest Notes
2 years ago by Doggy-Footprint
Tencent COS for Imgur
a year ago by bobostudio
🔥 Obsidian 腾讯云 COS 图床插件
Text Wrapper
3 years ago by smx0
Plugin for Obsidian
Timeline
5 years ago by George Butco
Obisdian.md plugin for creating timelines
Tokenz
2 years ago by Ferenc Moricz
Use any kind of short codes in Obsidian! Comes with a map for smileys (:), ;), ...) and one for emojis (:smile:, :wink:, ...).
Track-a-Lot
2 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
VaultSync
a year ago by Justin Bird
Obsidian plugin to link your vault to a cloud storage provider.
Webdav File Explorer
3 years ago by red0orange
Workbench
6 years ago by ryanjamurphy
A plugin to help you collect working materials.
Yesterday
2 years ago by Dominik Mayer
Obsidian plugin providing Yesterday journaling support
Youglish
6 years ago by Noureddine Haouari
Use YouTube to improve your pronunciation. YouGlish plugin gives you fast, unbiased answers about how words is spoken by real people and in context.