func()

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