Enhancement: Remote media library or media upload #359

Open
opened 2026-10-05 02:42:41 +02:00 by adam · 4 comments
Owner

Is your feature request related to a problem? Please describe.
While, it's great to manage the media locally in the folder in its current state, it can be quickly become problematic to publish the media files to the repo.

Describe the solution you'd like
An easy way to configure remote file storage that allows media library to upload the newly added files in the library to a remote location like AWS S3 or Cloudflare images or maybe another github repository for storing assets and then easily inserting the public URL of those remote images.

I think media upload remotely might be a simpler solution than Remote media library.

Describe alternatives you've considered
Sync the folder using s3browser, it's frustrating since it doesn't give easy way to insert the uploaded image. And one needs to sync folder manually every time to upload the image on s3 bucket.

**Is your feature request related to a problem? Please describe.** While, it's great to manage the media locally in the folder in its current state, it can be quickly become problematic to publish the media files to the repo. **Describe the solution you'd like** An easy way to configure remote file storage that allows media library to upload the newly added files in the library to a remote location like AWS S3 or Cloudflare images or maybe another github repository for storing assets and then easily inserting the public URL of those remote images. I think media upload remotely might be a simpler solution than Remote media library. **Describe alternatives you've considered** Sync the folder using s3browser, it's frustrating since it doesn't give easy way to insert the uploaded image. And one needs to sync folder manually every time to upload the image on s3 bucket. <!-- github-sync-id:1421350315 -->
Author
Owner

Thanks, @mayankguptadotcom I have been thinking about this for many months now. There are a couple of approaches to it:

  1. Create an API layer configurable per host type, but it will generate a cost as the APIs need to be hosted.
  2. Implement all the types of hosts into the extension.
  3. Think about a plugin system, although I'm not yet sure if this can be accomplished.

Feel free to share if you have any ideas/feedback.

Thanks, @mayankguptadotcom I have been thinking about this for many months now. There are a couple of approaches to it: 1. Create an API layer configurable per host type, but it will generate a cost as the APIs need to be hosted. 2. Implement all the types of hosts into the extension. 3. Think about a plugin system, although I'm not yet sure if this can be accomplished. Feel free to share if you have any ideas/feedback. <!-- github-comment-id:1291715191 -->
Author
Owner

@estruyf - Thanks to you for Front Matter!

I'm not sure if Markdown Image VS Code plugin helps in any way. At the moment, I'm planning to use this with Github separate repo for images, although it doesn't work with s3 yet.

My thoughts on your points.

  1. Won't suggest API layer (same reason, cost)
  2. Either this or 3rd (provided it's possible)
@estruyf - Thanks to you for Front Matter! I'm not sure if Markdown Image [VS Code plugin](https://marketplace.visualstudio.com/items?itemName=hancel.markdown-image) helps in any way. At the moment, I'm planning to use this with Github separate repo for images, although it doesn't work with s3 yet. My thoughts on your points. 1. Won't suggest API layer (same reason, cost) 2. Either this or 3rd (provided it's possible) <!-- github-comment-id:1292218204 -->
Author
Owner

I would more generally love to have a plugin system, I think that would fit neatly into the ideas around extensible/inheritable configs and make it simpler to package things for a workflow, theme, or organization.

It also seems like a lot of up front work. 😅

I would more generally love to have a plugin system, I think that would fit neatly into the ideas around extensible/inheritable configs and make it simpler to package things for a workflow, theme, or organization. It also seems like a lot of up front work. 😅 <!-- github-comment-id:1292318154 -->
Author
Owner

My first preference is also the plugin system, but I need to think about how it can be achieved a bit.

One way could be to create an extension per type - like: FM - AWS S3, in the configuration you define which one to use.

These extensions will have commands like: frontmatter.media.<type>.<action> which gets called from the media view to fetch the images, upload, etc.

Think that this approach would definitely work.

My first preference is also the plugin system, but I need to think about how it can be achieved a bit. One way could be to create an extension per type - like: `FM - AWS S3`, in the configuration you define which one to use. These extensions will have commands like: `frontmatter.media.<type>.<action>` which gets called from the media view to fetch the images, upload, etc. Think that this approach would definitely work. <!-- github-comment-id:1293073118 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/vscode-front-matter#359