Alternative to DreamStorageService, but instead of storing files on a database, it is stored on the file system itself.

Overview

EtherealGambi

Alternative to DreamStorageService, but instead of storing files on a database, it is stored on the file system itself.

I made this because most image optimization pipelines (like Cloudflare Images) are SO EXPENSIVE, OMG! I would gladly pay for a good service, but CF Images charges per image served, even if the image was cached!

I didn't want to use DreamStorageService because I wanted a way to host images for Loritta's blog posts in an easier way, just dragging and droppin' the file.

Maybe this project could replace DreamStorageService! Or maybe DreamStorageService will have features that will make this project obsolete... who knows! The fun part is playing around and figuring out what sticks.

So I decided to make my own solution for this, because I just wanted an easy way to store optimized images without me caring about expenses and stuff like that.

  • Ethereal: extremely delicate and light in a way that seems too perfect for this world.
  • Gambi(arra): Workaround because I got fed up with this issue.

Differences between DreamStorageService and EtherealGambi

  • EtherealGambi keeps the original files on the disk
    • DreamStorageService only keeps the already optimized image on the database.
    • While this is not a huge deal if you are dealing with user generated content, it is a pain if you want to keep a copy of the original version of the file.
  • EtherealGambi is easier to upload and manage file, because it is literally a files folder.
    • DreamStorageService keeps the files on the database, so you can't "interact" with the files easily.
  • No need to upload images via an API, just drag and drop to a folder.
    • DreamStorageService requires an API for this. This is actually is a disadvantage to EtherealGambi, if you want to upload dynamic/user generated content.
  • EtherealGambi only supports resizing images to preset sizes.
    • DreamStorageService supports dynamic image sizes and image cropping.

DreamStorageService is better for user generated content, EtherealGambi is better for static content (example: blog posts' images).

Yes, there is a big overlap in functionality between the two... maybe in the future they could be merged to have the best of both worlds. :3

Objectives

  • Store files
  • Optimize images automatically
  • Easy to upload files: Just a folder that you can drag files to it

Should I use this?

no, it is super hacky.

You might also like...
Easy app for managing your files without ads, respecting your privacy & security
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

The source files to the prototype app for the TomTom n.EXT Hackathon

nEXT-Hackathon2021 The source files to the prototype app for the TomTom n.EXT Hackathon. We are team MoTomized from Codam Coding College attempting to

Firestore Kotlin Client with strict (and relaxed) type-system.

Firestore Kotlin Client with strict (and relaxed) type-system.

This project is to create a system that uses DeFi technology to enforce contracts.
This project is to create a system that uses DeFi technology to enforce contracts.

This project is to create a system that uses DeFi technology to enforce contracts. Users will be able to set up contracts between each other, this includes an escrow service for payments. If users disagree over whether a contract was fulfilled, a jury appointed by the system will make the final decision.

A server which delivers the game cache files to an end-user.

RuneTopic Js5 Server A server which delivers the game cache files to an end-user. Setup Guide You can host a js5 server with Docker or with your local

A command-line student management system in Kotlin

Student Management System Done as a part of NITK GSDC Android Study Jams 2021 Th

These files are included in an Android Studio Project for a Magic the Gathering Life Counter app. The app was written in Kotlin.
These files are included in an Android Studio Project for a Magic the Gathering Life Counter app. The app was written in Kotlin.

Magic-Life-Counter These files were created in Android Studio using Kotlin. Usage This app was made to keep track of life totals while playing the tra

Gradle plugin which allows to use typed DSL for generating kubernetes/openshift YAML files

gr8s Gradle plugin which allows using typed DSL for generating kubernetes/openshift YAML files. Based on kuberig Usage import io.github.guai.gr8s.Gene

An android app using Mongodb for logistics tracking system.

DeliveryGo An android application for logistics tracking. Used technology Kotlin: In this project kotlin is used to code the full application on Andro

Owner
💻📱 Transformando sonhos em realidade! — @LorittaBot, @SparklyPower e muito mais!
null
Fully customizable, built from scratch NumberPicker for android. Created as an alternative to non-customizable native android NumberPicker

GoodNumberPicker GoodPicker is an Android library that provides a picker with customizable UI. It was developed as alternative to the default NumberPi

null 3 Nov 30, 2022
This project is basically PowerNukkit but just in Kotlin (check out the original PowerNukkit source here: https://github.com/PowerNukkit/PowerNukkit)

Introduction Nukkit is nuclear-powered server software for Minecraft: Pocket Edition. It has a few key advantages over other server software: Written

Chrones 5 Jul 7, 2021
A custom view for rating which easy to make and use, but function is excellent

QRatingView A custom view for rating which easy to make and use, but function is excellent Effect Picture Properties <declare-styleable name="QRat

QCoder 1 Dec 3, 2021
Swarup 2 Feb 6, 2022
Candroid Browser is a replacement web browser for Candroid. It is designed to replace the AOSP browser, but not Google Chrome. It will be based on a privacy friendly WebKit engine fork.

Candroid Browser Candroid Browser is a replacement web browser for Candroid. It is designed to replace the AOSP browser, but not Google Chrome. It wil

Sean P. Myrick V19.1.7.2 3 Dec 22, 2022
This repository demonstrates how Kotlin can simplify Spring Boot configuration properties file mapping

Kotlin spring-boot nested config props This repository demonstrates how Kotlin can simplify Spring Boot configuration properties file mapping @Constru

Maksim Kostromin 1 Oct 11, 2021
Example project for using the Selenium toolkit with Kotlin, Maven, TestNg and the config is managed via a property file.

Selenium-Java-Toolkit-TestNg-Playground This is the sample-Project and show you how to use the Selenium-Toolkit. The Selenium-Toolkit is a Java based

Selenium Consulting 0 Dec 15, 2021
Kotlin multi-platform simple File I/O library

KmpIO This is a Kotlin multiplatform (KMP) library for basic Text file, Binary file, and zip/archive file IO. It was initially implemented with the an

Steven K Olson 9 Oct 1, 2022
A specific format represent file directory in Json

CascadeJson.kt A specific format represent file directory in Json Provide a function for convert to map or json string in Kotlin Usage Download zip fi

CWKSC 1 Feb 22, 2022
Intellij plugin to decode base64 encoded values in yaml file.

yaml-base64-decoder Plugin Description Extension Adds Decode Base64 Values to editor popup menu when yaml file is opened Adds a keyboard shortcut ⌥ ⇧

null 2 Dec 16, 2022