in cdn-aliyun/aliyun.go [140:218]
func (c *CDN) scanStaticPathFiles(fileName string) (err error) {
if len(fileName) == 0 {
return
}
// scan static path files
entry, err := os.ReadDir(fileName)
if err != nil {
log.Error("read static dir failed: ", err, fileName)
return
}
for _, info := range entry {
if info.IsDir() {
err = c.scanStaticPathFiles(filepath.Join(fileName, info.Name()))
if err != nil {
return
}
continue
}
var file *os.File
filePath := filepath.Join(fileName, info.Name())
fi, _ := info.Info()
size := fi.Size()
file, err = os.Open(filePath)
if err != nil {
log.Error("open file failed: %v", err)
return
}
suffix := staticPath[:1]
if suffix != "/" {
suffix = ""
}
filePath = strings.TrimPrefix(filePath, staticPath+suffix)
// rebuild custom io.Reader
ns := strings.Split(info.Name(), ".")
if info.Name() == "asset-manifest.json" {
err = c.Upload(filePath, c.rebuildReader(file, map[string]string{
"\"/static": "",
}), size)
if err != nil {
return
}
continue
}
if ns[0] == "main" {
ext := strings.ToLower(filepath.Ext(filePath))
if ext == ".js" || ext == ".map" {
err = c.Upload(filePath, c.rebuildReader(file, map[string]string{
"\"static": "",
"=\"/\",": "=\"\",",
}), size)
if err != nil {
return
}
continue
}
if ext == ".css" {
err = c.Upload(filePath, c.rebuildReader(file, map[string]string{
"url(/static": "url(../../static",
}), size)
if err != nil {
return
}
continue
}
}
err = c.Upload(filePath, file, size)
if err != nil {
return
}
}
return nil
}