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)
|
||||
mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
|
||||
|
||||
ifpsHandler := &ipfsHandler{node: node}
|
||||
ifpsHandler.LoadTemplate()
|
||||
ifpsHandler, err := NewIpfsHandler(node)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mux.Handle("/ipfs/", ifpsHandler)
|
||||
|
||||
@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error {
|
||||
|
||||
server := manners.NewServer()
|
||||
mux := http.NewServeMux()
|
||||
ifpsHandler := &ipfsHandler{node}
|
||||
ifpsHandler, err := NewIpfsHandler(node)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
mux.Handle("/ipfs/", ifpsHandler)
|
||||
|
||||
done := make(chan struct{}, 1)
|
||||
|
@ -40,13 +40,25 @@ type ipfsHandler struct {
|
||||
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
|
||||
func (i *ipfsHandler) LoadTemplate() {
|
||||
func (i *ipfsHandler) loadTemplate() error {
|
||||
t, err := template.New("dir").Parse(listingTemplate)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return err
|
||||
}
|
||||
i.dirList = t
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
|
||||
@ -175,7 +187,7 @@ var listingTemplate = `
|
||||
<body>
|
||||
<h2>Index of {{ .path }}</h2>
|
||||
<ul>
|
||||
<li> <a href="./..">Parent</a></li>
|
||||
<li><a href="./..">..</a></li>
|
||||
{{ range $item := .listing }}
|
||||
<li><a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
|
||||
{{ end }}
|
||||
|
Reference in New Issue
Block a user