Skip to content

Pure Golang http based image repo. File storage is via host fileSystem and meta data via Pebble DB for preformance. Includes client based yoekn Authentication and multitenant useage. Users can also apply arbitary transformations to Image data on retrieval,

Notifications You must be signed in to change notification settings

GavinClarke0/Image-Repo

Repository files navigation

Image Repo is basic token authicated image non distributed image repo written in pure golang including dependancies.

Features

  • Single and bulk zip file upload
  • bulk and single image retrieval
  • Multitentant token based authentication and private files
  • Retrieved imaged server side transformations
  • Super Fast upload/retreival thanks to PebbleDB for metadata storage and file data stored on local file system

** Examples **

  1. To use image-repo autheticate your client by retrieving a token via "/login"

  2. Upload images via "/image/putimage" with the body containg the image and the content0-type equal to the image type or bulk upload via "/image/putimages"

2.1 mark images private with "?visibility=private" to ensure only the owner client can retrieve the image

  1. Revtrieve images via "/image/getimage/{imageId}" with the ability to abritary transform the image server side query params such as "width=900"

  2. New tentants can be created "/createuser"

Design Considerations

Application utalizes a decoupled storage engine (currently local) top allow easy swapping for cloud storage file storage such as AWS s3

TODO

  • Docker Image
  • Visual Demo

About

Pure Golang http based image repo. File storage is via host fileSystem and meta data via Pebble DB for preformance. Includes client based yoekn Authentication and multitenant useage. Users can also apply arbitary transformations to Image data on retrieval,

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages