31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# Imstor
|
|
A Golang image storage engine. Used to create and store different sizes/thumbnails of user uploaded images.
|
|
|
|
[![Build Status](https://travis-ci.org/deiwin/imstor.svg?branch=master)](https://travis-ci.org/deiwin/imstor)
|
|
[![Coverage](http://gocover.io/_badge/github.com/deiwin/imstor?0)](http://gocover.io/github.com/deiwin/imstor)
|
|
[![GoDoc](https://godoc.org/github.com/deiwin/imstor?status.svg)](https://godoc.org/github.com/deiwin/imstor)
|
|
|
|
## Description
|
|
|
|
**Imstor** enables you to create copies (or thumbnails) of your images and stores
|
|
them along with the original image on your filesystem. The image and its
|
|
copies are stored in a file structure based on the (zero-prefixed, decimal)
|
|
CRC 64 checksum of the original image. The last 2 characters of the checksum
|
|
are used as the lvl 1 directory name.
|
|
|
|
**Imstor** supports any image format you can decode to go's own image.Image
|
|
and then back to your preferred format. The decoder for any given image is
|
|
chosen by the image's mimetype.
|
|
|
|
### Example folder structure
|
|
Folder name and contents, given the checksum `08446744073709551615` and
|
|
sizes named "*small*" and "*large*":
|
|
```
|
|
/configured/root/path/15/08446744073709551615/original.jpg
|
|
/configured/root/path/15/08446744073709551615/small.jpg
|
|
/configured/root/path/15/08446744073709551615/large.jpg
|
|
```
|
|
|
|
## Usage
|
|
See tests for usage examples.
|