Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
295cc443
提交
295cc443
authored
1月 28, 2015
作者:
Mildred Ki'Lya
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
HTTP Gateway: add /ipns/ GET requests
上级
7d09da3c
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
33 行增加
和
5 行删除
+33
-5
gateway.go
core/corehttp/gateway.go
+1
-1
gateway_handler.go
core/corehttp/gateway_handler.go
+32
-4
没有找到文件。
core/corehttp/gateway.go
浏览文件 @
295cc443
...
...
@@ -13,7 +13,7 @@ func GatewayOption(writable bool) ServeOption {
return
err
}
mux
.
Handle
(
"/ipfs/"
,
gateway
)
mux
.
Handle
(
"/ipns/"
,
gateway
)
mux
.
Handle
(
"/ipns/"
,
gateway
)
return
nil
}
}
core/corehttp/gateway_handler.go
浏览文件 @
295cc443
...
...
@@ -75,7 +75,7 @@ func (i *gatewayHandler) loadTemplate() error {
return
nil
}
func
(
i
*
gatewayHandler
)
ResolvePath
(
ctx
context
.
Context
,
p
string
)
(
*
dag
.
Node
,
string
,
error
)
{
func
(
i
*
gatewayHandler
)
resolveNamePath
(
ctx
context
.
Context
,
p
string
)
(
string
,
error
)
{
p
=
gopath
.
Clean
(
p
)
if
strings
.
HasPrefix
(
p
,
IpnsPathPrefix
)
{
...
...
@@ -83,7 +83,7 @@ func (i *gatewayHandler) ResolvePath(ctx context.Context, p string) (*dag.Node,
hash
:=
elements
[
0
]
k
,
err
:=
i
.
node
.
Namesys
.
Resolve
(
ctx
,
hash
)
if
err
!=
nil
{
return
nil
,
""
,
err
return
""
,
err
}
elements
[
0
]
=
k
.
Pretty
()
...
...
@@ -92,6 +92,14 @@ func (i *gatewayHandler) ResolvePath(ctx context.Context, p string) (*dag.Node,
if
!
strings
.
HasPrefix
(
p
,
IpfsPathPrefix
)
{
p
=
gopath
.
Join
(
IpfsPathPrefix
,
p
)
}
return
p
,
nil
}
func
(
i
*
gatewayHandler
)
ResolvePath
(
ctx
context
.
Context
,
p
string
)
(
*
dag
.
Node
,
string
,
error
)
{
p
,
err
:=
i
.
resolveNamePath
(
ctx
,
p
)
if
err
!=
nil
{
return
nil
,
""
,
err
}
node
,
err
:=
i
.
node
.
Resolver
.
ResolvePath
(
path
.
Path
(
p
))
if
err
!=
nil
{
...
...
@@ -298,7 +306,17 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
}
}
h
,
components
,
err
:=
path
.
SplitAbsPath
(
path
.
Path
(
urlPath
))
ctx
,
cancel
:=
context
.
WithCancel
(
i
.
node
.
Context
())
defer
cancel
()
ipfspath
,
err
:=
i
.
resolveNamePath
(
ctx
,
urlPath
)
if
err
!=
nil
{
// FIXME HTTP error code
webError
(
w
,
"Could not resolve name"
,
err
,
http
.
StatusInternalServerError
)
return
}
h
,
components
,
err
:=
path
.
SplitAbsPath
(
path
.
Path
(
ipfspath
))
if
err
!=
nil
{
webError
(
w
,
"Could not split path"
,
err
,
http
.
StatusInternalServerError
)
return
...
...
@@ -358,7 +376,17 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
func
(
i
*
gatewayHandler
)
deleteHandler
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
urlPath
:=
r
.
URL
.
Path
h
,
components
,
err
:=
path
.
SplitAbsPath
(
path
.
Path
(
urlPath
))
ctx
,
cancel
:=
context
.
WithCancel
(
i
.
node
.
Context
())
defer
cancel
()
ipfspath
,
err
:=
i
.
resolveNamePath
(
ctx
,
urlPath
)
if
err
!=
nil
{
// FIXME HTTP error code
webError
(
w
,
"Could not resolve name"
,
err
,
http
.
StatusInternalServerError
)
return
}
h
,
components
,
err
:=
path
.
SplitAbsPath
(
path
.
Path
(
ipfspath
))
if
err
!=
nil
{
webError
(
w
,
"Could not split path"
,
err
,
http
.
StatusInternalServerError
)
return
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论