提交 2759d1c1 作者: Matt Bell 提交者: Juan Batiz-Benet

core/corehttp: Added handling of /ipns/<hash>/x paths

上级 950e492f
...@@ -66,9 +66,12 @@ func (i *gatewayHandler) loadTemplate() error { ...@@ -66,9 +66,12 @@ func (i *gatewayHandler) loadTemplate() error {
} }
func (i *gatewayHandler) ResolvePath(ctx context.Context, p string) (*dag.Node, string, error) { func (i *gatewayHandler) ResolvePath(ctx context.Context, p string) (*dag.Node, string, error) {
p = path.Clean(p)
if strings.HasPrefix(p, "/ipns/") { if strings.HasPrefix(p, "/ipns/") {
elements := strings.Split(path.Clean(p[6:]), "/") elements := strings.Split(p[6:], "/")
k, err := i.node.Namesys.Resolve(ctx, elements[0]) hash := elements[0]
k, err := i.node.Namesys.Resolve(ctx, hash)
if err != nil { if err != nil {
return nil, "", err return nil, "", err
} }
...@@ -169,16 +172,15 @@ func (i *gatewayHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { ...@@ -169,16 +172,15 @@ func (i *gatewayHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
break break
} }
di := directoryItem{link.Size, link.Name, path.Join(p, link.Name)} di := directoryItem{link.Size, link.Name, path.Join(urlPath, link.Name)}
dirListing = append(dirListing, di) dirListing = append(dirListing, di)
} }
if !foundIndex { if !foundIndex {
// template and return directory listing // template and return directory listing
hndlr := webHandler{ hndlr := webHandler{
"listing": dirListing, "listing": dirListing,
"path": urlPath, "path": urlPath,
"actualPath": p,
} }
if err := i.dirList.Execute(w, hndlr); err != nil { if err := i.dirList.Execute(w, hndlr); err != nil {
internalWebError(w, err) internalWebError(w, err)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论