S3agle

by Turner Monroe (turnercore)
5
4
3
2
1
Score: 46/100

Description

Category: File Management

The S3agle plugin enhances file management in Obsidian by integrating S3 storage and the Eagle file management app. It enables seamless uploading of files to S3 or Eagle, creating preview links and managing local or remote file storage. Users can configure settings for automatic uploads, drag-and-drop functionality, and selective local-only storage. The plugin supports embedding files such as PDFs and PowerPoints using external viewers and includes options for file name hashing for privacy. With commands for bulk uploads or downloads and the ability to handle files across platforms, S3agle simplifies file organization and retrieval for Obsidian users.

Reviews

No reviews yet.

Stats

27
stars
997
downloads
2
forks
725
days
621
days
621
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
2
total issues
1
open issues
1
closed issues
107
commits

Latest Version

2 years ago

Changelog

README file from

Github

S3agle File Management for Obsidian

This is a plugin for Obsidian. It was based off S3 Image Uploader.

This project uses S3 Storage provider and/or Eagle to manage files locally. You can use each independiently.

An overview of how to use this plugin, in 2 steps.

  1. Go to settings and configure the plugin.
    • If you are using S3 storage you will need to get your S3 storage variables, including your accessKeyId, your secretAccessKey, your region, the bucket name, and the bucket folder if needed.
    • If you want to use Eagle as well, you'll need to download and install the Eagle app (https://eagle.cool), and have it running in the background.
  2. Drag and drop or copy and paste a file into your notes. Your files will be automatically uploaded and a preview link created for S3 and/or Eagle depending on your settings.

A couple of other use cases:

  • Uploading all files in a note to S3/Eagle with a command. Note that this will not delete the file in your vault.
  • Downloading and converting uploaded S3 files back into vault files. These will also be uploaded to Eagle if you are using it.
  • Using the plugin without S3 uploads to offload your vault files into an Eagle library. Note that, for now, this will break most ways to preview the files, which is why S3 is recomended.

What is Eagle?

Eagle is a file mangement app. Eagle app needs to be running in the background for the Eagle functionality to work properly. The Eagle URL is editable within the settings in case you want to try running it remotely. This plugin has not been tested with Eagle running on a remote computer, but in theory it should work Eagle has only released basic API access to the app, and as this API is expanded this plugin could have more options for storing files within it.

[!NOTE] This plugin is still in development, and there may be some bugs. Please report any issues you find. Always be sure to backup your vault before using a new plugin.

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 files (optional, and will be created on the fly if it does not exist.)

Any S3 compitible storage provider should work.

If you want to be able to view the files from Obsidian, 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 a file from the clipboard into the Obsidian note, the plugin will upload the file to your bucket, and insert a link to the file 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 file.

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.

If you do not want this behavior in all notes, you can customize it on a per note basis. Use the following variables in the frontmatter of your note to enable or disable specific features in that note. Frontmatter settings will override global settings.

The following frontmatter variables are supported:

  1. S3agleLocalOnly if enabled it will not upload the file to S3. If you are using Eagle it will still upload the file to Eagle.
  2. S3eagleUploadOnDrag enable/disable the drag and drop functionality.

Example:

---
S3agleLocalOnly: true
S3eagleUploadOnDrag: true
---

Commands

The following commands are added:

S3agle: Download ALL files from S3 to local This command will find all the files uploaded to your S3 url, download them, and add them to local vault storage and/or Eagle. Note that this will NOT delete the file from your S3 server, you'll need to do that manually.

S3agle: Upload ALL files to S3/Eagle This command will upload all the files that it can find in the current note to S3 and/or Eagle (depending on your settings). It will also update any of the links to turn them to S3 links. Note this does not delete the files locally.

How Eagle and S3 Interact with the Plugin

If you are using Eagle and S3 then the plugin will upload files to S3 and use S3 for Obsidian links. This means your files will be accessible even when using your vault on another computer.

It will also upload the files to Eagle, using the S3 link as the "website" field in Eagle so you can find the remote links again. In the future this will be used to be able to insert S3 links into new documents, using Eagle as the browser/searcher/file manager.

The file will not, by default, be stored locally in the vault.

If you are downloading files from S3 to make local, it will use vault storage as well as Eagle.

If Eagle is turned off the plugin will skip any Eagle related steps, and use local vault storage or S3 only.

If S3 is disabled, files won't be uploaded to S3, but will still be uploaded to Eagle.

Generating file embeddings

A good reason to use S3 along with Eagle is to allow the embedding of files within the Obsidian note. When using S3 storage, the plugin can embed .pdf files and .ppt files by using Google Docs pdf viewer for pdf and Microsoft Office ppt viewer for ppt file embeds. This can be turned off in which case only a link will be generated.

Hashing file names

If you would like more privacy in your file names, or just to ensure they are unique, there is an option to enable file name hashing in the settings. The same filename will generate the same hash to avoid uploading the file over and over to S3. The "Reset seed" button is there in case you want the same input filename to generate a different hash for some reason.

Development

Pull requests welcome! Features that I would like to add include:

  • Upload and download individual files from command.
  • Use Eagle for file embedding previews (this may require an update to the Eagle API before it is possible)
  • Eagle file explorer with thumbnails for Eagle files to insert them into the note.
  • Ability to insert already uploaded files into new documents. (exploring files with Eagle should enable this)
  • Have plugin work better without S3
  • Add additional online storage options like Dropbox in addtion to S3

If you enjoy this plugin, throw some support by making PR improvements, contributing by donating, and making issue and bug reports.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Android nomedia
3 years ago by JakeisAwesome
When syncing Obsidian with Android you will see a lot of media associated with your vaults. This will add the .nomedia file to ever folder in your Vault.
Auto Archive
3 years ago by Shane Burke
Auto Archive plugin for Obsidian
Auto Filename
3 years ago by rcsaquino
Auto Filename is an Obsidian.md plugin that automatically renames files in Obsidian based on the first x characters of the file, saving you time and effort.
Better File Link
5 years ago by Marc Julian Schwarz
A plugin for the note taking app Obsidian to add better external file links to your notes.
Binary File Manager
4 years ago by qawatake
An Obsidian plugin to manage binary files
Cloud Storage
2 years ago by Jiajun Ma
Obsidian Cloud Storage is a powerful and user-friendly plugin designed to seamlessly integrate cloud storage capabilities into your Obsidian workflow. This plugin allows you to effortlessly upload your attachments to the cloud, freeing up local storage space and enabling easy sharing and access across all your devices.
Cloudinary Uploader
4 years ago by Jordan Handy
An uploader for Obsidian to Cloudinary
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
CSV Lite
a year ago by Jay Bridge
Simple enough for csv, no more fancy function you need to learn and think!
Edit History
3 years ago by Antonio Tejada
Obsidian Edit History Plugin, automatically save all the edit history of a note, browse and restore previous versions
External File Card
2 years ago by James-Yu
A plugin for Obsidian showing a card displaying basic information of a file in pre-defined folders.
External Rename Handler
a year ago by mnaoumov
Obsidian Plugin that handles external renames made outside of the app
File chucker
3 years ago by Ken Lim
File Hider
4 years ago by Oliver Akins
A plugin for https://obsidian.md that allows hiding specific files and folders from the file explorer.
File Order
3 years ago by lukasbach
Obsidian plugin to reorder files with drag-and-drop by customizing a number-prefix in the filenames
File Preview
2 years ago by Huajin
Add file preview contents under file in file explorer.
Folder Focus Mode
4 years ago by grochowski
Focus file explorer on chosen folder and its files and subdirectories, while hiding all the other elements.
Git File Explorer
2 years ago by Mateus Molina
Graphic Organizer
a month ago by Nick Le Guillou - Superhuman Curiosity
Interactive tree view for visualizing and managing your vault's file hierarchy.
Guid Renamer
2 years ago by Taskscape LTD, Kacper Pabianiak
Renames the currently selected file by providing a unique file name based on GUID pattern
HTML Reader
4 years ago by Nuthrash
This is a plugin for Obsidian (https://obsidian.md). Can open document with .html and .htm file extensions.
Image Uploader For Note
a year ago by Yunfi
Upload images in a note, and if the image is only used in this note, delete it from vault.
Inbox Organiser
a year ago by Jamie Hurst
Obsidian plugin to capture any new notes into an inbox and periodically prompt to organise these into other folders within the vault.
Insert Multiple Attachments
a year ago by mnaoumov
Obsidian Plugin that allows to insert multiple attachments at a time
Link indexer
5 years ago by Yuliya Bagriy
Local Any Files
a year ago by ShermanTsang
A obsidian plugin used to extract and download files in your obsidian note.
Luhman
5 years ago by Dylan Elliott
Markdown Hijacker
a year ago by Yongmini
Beyond the Vault. One hub for every Markdown, everywhere
Media Companion
a year ago by Nick de Bruin
Merge Notes
3 years ago by fnya
Merge Notes is Plugin for Obsidian
New Filename
a year ago by Amin Sennour
Simple plugin to change the default name for a new note from "Untitled" to a UUID.
New Note Fixer
a year ago by mnaoumov
Obsidian Plugin that unifies the way non-existing notes are created when clicking on their links
Note archiver
3 years ago by thenomadlad
NSFW filter
2 years ago by catvatar
Obsidian Plugin adding a button to toggle visiblity of NSFW notes
Open File by Magic Date
4 years ago by simplgy
Paste image rename
4 years ago by Reorx
Renames pasted images and all the other attachments added to the vault
Recently Added Files
a year ago by Lemon695
List files by last added, includes pictures, pdfs, etc.
Remote Fetch
8 months ago by Shaharyar
Remove Empty Folders
3 years ago by fnya
Remove Empty Folders for Obsidian
Rename File to Selection
a year ago by Aava
Rename your file to the current text selection.
Reveal Active File Button
4 years ago by Clare Macrae
Obsidian plugin to add a button to the top of the Obsidian File Explorer, to reveal the active file.
S3 attachments storage
3 years ago by TechTheAwesome
An Obsidian plugin for storage and retrieval of media attachments on S3 compatible services.
S3 Image Uploader
3 years ago by jvsteiner
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.
Screwdriver
4 years ago by vorotamoroz
Simple Archiver
a year ago by Mike Farr
An Obsidian plugin that enables you to quickly archive a single note or an entire folder of notes.
Simple Image Inserter
2 years ago by Joey Holtzman
Add images from the file system into Obsidian notes through a built-in file explorer
Structured Copy: Files & Folders
a year ago by SchmidA
sync-db-os
2 years ago by ketd
Syncthing Integration
3 years ago by LBF38
Obsidian plugin for Syncthing integration
Telegram Sync
3 years ago by Burtasov Volodymyr
Transfer messages and files from Telegram to Obsidian
Tencent COS for Imgur
a year ago by bobostudio
🔥 Obsidian 腾讯云 COS 图床插件
Trash Explorer
4 years ago by Per Mortensen
Restore and delete files from the Obsidian .trash folder
Unique attachments
5 years ago by Dmitry Savosh
Obsidian plugin. Renames attachments, making their names unique.
Update frontmatter modified date
3 years ago by Alan Grainger
Automatically update a frontmatter/YAML modified date field
Update Relative Links
4 years ago by val
Update time on edit
5 years ago by beaussan
Vault Transfer
2 years ago by ImaginaryProgramming
Transfers a note from one vault to another.
VaultSync
a year ago by Justin Bird
Obsidian plugin to link your vault to a cloud storage provider.
VSCode Editor
3 years ago by Sun Xvming
Edit Code Files like VSCode in Obsidian.
WebDAV Explorer
2 months ago by 蓝星晓夜
WebDAV Explorer: Connect to WebDAV server, preview files directly in web view, and generate links through simple drag-and-drop.
Webdav File Explorer
3 years ago by red0orange