summaryrefslogtreecommitdiffstats
path: root/tpl/data
diff options
context:
space:
mode:
authorJake Howard <RealOrangeOne@users.noreply.github.com>2017-07-21 12:10:11 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-07-21 13:10:11 +0200
commit6cd33f6953671edb13d42dcb15746bd10df3428b (patch)
treee6869630c9860d5fa4c88385066884b8c8c4be33 /tpl/data
parentdbe63970e09313dec287816ab070b5c2f5a13b1b (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
Diffstat (limited to 'tpl/data')
-rw-r--r--tpl/data/cache.go6
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.