in cdn-s3/s3.go [277:310]
func (c *CDN) rebuildReader(file io.Reader, replaceMap map[string]string) io.ReadSeeker {
var (
bufr = make([]byte, 0)
res string
)
for {
buf := make([]byte, 1024)
n, err := file.Read(buf)
if err != nil {
break
}
bufr = append(bufr, buf[:n]...)
}
res = string(bufr)
if replaceMap != nil {
for oldStr, newStr := range replaceMap {
if oldStr != "" {
if newStr == "" {
prefix := c.Config.VisitUrlPrefix + c.Config.ObjectKeyPrefix
if prefix[len(prefix)-1:] == "/" {
prefix = strings.TrimSuffix(prefix, "/")
}
newStr = "\"" + prefix + "/static"
}
res = strings.ReplaceAll(res, oldStr, newStr)
}
}
}
return strings.NewReader(res)
}