Let's say I have a website made with Vue.js as a single-page app. I need to include a component that fetches a set of images uploaded by the client from a suitable object storage service and displays them in eg. grid form. Later on, this might extend to hosting other types of media as well.
Here are some requirements:
- Client should be able to use an easy UI for dragging images to folder.
- Client should be able to add basic metadata to objects like title, description, and the date taken.
- Client should be able to delete images or mark them as private.
- This folder should be exposed via an API for querying image data (REST or GraphQL are okay).
- The service shouldn't be too costly.
What is the best service for solving a problem like this? Do tell!