func()

in cdn-aliyun/aliyun.go [288:318]


func (c *CDN) rebuildReader(file io.Reader, replaceMap map[string]string) io.Reader {
	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)

	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)
}