提交 cb84a376 作者: Matt Bell

cmd/ipfs: Added an ipfsHandler constructor

上级 64cb1b6b
...@@ -165,8 +165,10 @@ func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr) ...@@ -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 { ...@@ -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 { ...@@ -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 = ` ...@@ -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>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论