Download common/embed-file-system.go from AZILS/new-api: direct link, hf CLI and curl.
- Browser
- Download file 845 Bytes
-
https://huggingface.co/spaces/AZILS/new-api/resolve/main/common/embed-file-system.go
- Command line
-
hf download hf://spaces/AZILS/new-api/common/embed-file-system.go
-
curl -L -o embed-file-system.go https://huggingface.co/spaces/AZILS/new-api/resolve/main/common/embed-file-system.go
845 Bytes
| package common | |
| import ( | |
| "embed" | |
| "io/fs" | |
| "net/http" | |
| "os" | |
| "github.com/gin-contrib/static" | |
| ) | |
| // Credit: https://github.com/gin-contrib/static/issues/19 | |
| type embedFileSystem struct { | |
| http.FileSystem | |
| } | |
| func (e *embedFileSystem) Exists(prefix string, path string) bool { | |
| _, err := e.Open(path) | |
| if err != nil { | |
| return false | |
| } | |
| return true | |
| } | |
| func (e *embedFileSystem) Open(name string) (http.File, error) { | |
| if name == "/" { | |
| // This will make sure the index page goes to NoRouter handler, | |
| // which will use the replaced index bytes with analytic codes. | |
| return nil, os.ErrNotExist | |
| } | |
| return e.FileSystem.Open(name) | |
| } | |
| func EmbedFolder(fsEmbed embed.FS, targetPath string) static.ServeFileSystem { | |
| efs, err := fs.Sub(fsEmbed, targetPath) | |
| if err != nil { | |
| panic(err) | |
| } | |
| return &embedFileSystem{ | |
| FileSystem: http.FS(efs), | |
| } | |
| } | |