0
Fork 0
mirror of https://github.com/willnorris/imageproxy.git synced 2024-12-16 21:56:43 -05:00

add support for redis cache backend

fixes #49
This commit is contained in:
Will Norris 2017-09-09 07:14:44 +00:00
parent 2d4bf70da0
commit dbfc693aea
2 changed files with 14 additions and 1 deletions

View file

@ -107,7 +107,11 @@ enabled using the `-cache` flag. It supports the following values:
variable be set.
- azure URL (e.g. `azure://container-name/`) - will cache images on
Azure Storage. This requires `AZURESTORAGE_ACCOUNT_NAME` and
`AZURESTORAGE_ACCESS_KEY` environmental variables set.
- redis URL (e.g. `redis://hostname/`) - will cache images on
the specified redis host. The full URL syntax is defined by the [redis URI
registration](https://www.iana.org/assignments/uri-schemes/prov/redis).
Rather than specify password in the URI, use the `REDIS_PASSWORD`
environment variable.
For example, to cache files on disk in the `/tmp/imageproxy` directory:

View file

@ -22,12 +22,15 @@ import (
"log"
"net/http"
"net/url"
"os"
"strings"
"github.com/PaulARoy/azurestoragecache"
"github.com/diegomarangoni/gcscache"
"github.com/garyburd/redigo/redis"
"github.com/gregjones/httpcache"
"github.com/gregjones/httpcache/diskcache"
rediscache "github.com/gregjones/httpcache/redis"
"github.com/peterbourgon/diskv"
"sourcegraph.com/sourcegraph/s3cache"
"willnorris.com/go/imageproxy"
@ -132,6 +135,12 @@ func parseCache() (imageproxy.Cache, error) {
return gcscache.New(u.String()), nil
case "azure":
return azurestoragecache.New("", "", u.Host)
case "redis":
conn, err := redis.DialURL(u.String(), redis.DialPassword(os.Getenv("REDIS_PASSWORD")))
if err != nil {
return nil, err
}
return rediscache.NewWithClient(conn), nil
case "file":
fallthrough
default: