diff options
author | Jake Howard <RealOrangeOne@users.noreply.github.com> | 2017-07-21 12:10:11 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-21 13:10:11 +0200 |
commit | 6cd33f6953671edb13d42dcb15746bd10df3428b (patch) | |
tree | e6869630c9860d5fa4c88385066884b8c8c4be33 | |
parent | dbe63970e09313dec287816ab070b5c2f5a13b1b (diff) |
tpl: Use hash for cache key
Use a hash for the cache key, to fix 'file name too long' errors when retreiving from long urls
Fixes #3690
-rw-r--r-- | tpl/data/cache.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tpl/data/cache.go b/tpl/data/cache.go index b4f91c0f8..6c4033160 100644 --- a/tpl/data/cache.go +++ b/tpl/data/cache.go @@ -14,8 +14,9 @@ package data import ( + "crypto/md5" + "encoding/hex" "errors" - "net/url" "sync" "github.com/gohugoio/hugo/config" @@ -27,7 +28,8 @@ var cacheMu sync.RWMutex // getCacheFileID returns the cache ID for a string. func getCacheFileID(cfg config.Provider, id string) string { - return cfg.GetString("cacheDir") + url.QueryEscape(id) + hash := md5.Sum([]byte(id)) + return cfg.GetString("cacheDir") + hex.EncodeToString(hash[:]) } // getCache returns the content for an ID from the file cache or an error. |