mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-29 01:12:24 +08:00
cmd/ipfs: Added an ipfsHandler constructor
This commit is contained in:
@ -165,8 +165,10 @@ func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr)
|
|||||||
cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin)
|
cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin)
|
||||||
mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
|
mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
|
||||||
|
|
||||||
ifpsHandler := &ipfsHandler{node: node}
|
ifpsHandler, err := NewIpfsHandler(node)
|
||||||
ifpsHandler.LoadTemplate()
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
mux.Handle("/ipfs/", ifpsHandler)
|
mux.Handle("/ipfs/", ifpsHandler)
|
||||||
|
|
||||||
@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error {
|
|||||||
|
|
||||||
server := manners.NewServer()
|
server := manners.NewServer()
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
ifpsHandler := &ipfsHandler{node}
|
ifpsHandler, err := NewIpfsHandler(node)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
mux.Handle("/ipfs/", ifpsHandler)
|
mux.Handle("/ipfs/", ifpsHandler)
|
||||||
|
|
||||||
done := make(chan struct{}, 1)
|
done := make(chan struct{}, 1)
|
||||||
|
@ -40,13 +40,25 @@ type ipfsHandler struct {
|
|||||||
dirList *template.Template
|
dirList *template.Template
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewIpfsHandler(node *core.IpfsNode) (*ipfsHandler, error) {
|
||||||
|
i := &ipfsHandler{
|
||||||
|
node: node,
|
||||||
|
}
|
||||||
|
err := i.loadTemplate()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return i, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Load the directroy list template
|
// Load the directroy list template
|
||||||
func (i *ipfsHandler) LoadTemplate() {
|
func (i *ipfsHandler) loadTemplate() error {
|
||||||
t, err := template.New("dir").Parse(listingTemplate)
|
t, err := template.New("dir").Parse(listingTemplate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
return err
|
||||||
}
|
}
|
||||||
i.dirList = t
|
i.dirList = t
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
|
func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
|
||||||
@ -175,9 +187,9 @@ var listingTemplate = `
|
|||||||
<body>
|
<body>
|
||||||
<h2>Index of {{ .path }}</h2>
|
<h2>Index of {{ .path }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="./..">Parent</a></li>
|
<li><a href="./..">..</a></li>
|
||||||
{{ range $item := .listing }}
|
{{ range $item := .listing }}
|
||||||
<li> <a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
|
<li><a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
|
Reference in New Issue
Block a user