Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
1fe28bc6
提交
1fe28bc6
authored
12月 14, 2018
作者:
Łukasz Magiera
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
files2.0: split adder.addFile into subtyped functions
License: MIT Signed-off-by:
Łukasz Magiera
<
magik6k@gmail.com
>
上级
a92a1745
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
31 行增加
和
27 行删除
+31
-27
add.go
core/coreunix/add.go
+31
-27
没有找到文件。
core/coreunix/add.go
浏览文件 @
1fe28bc6
...
...
@@ -322,7 +322,7 @@ func AddR(n *core.IpfsNode, root string) (key string, err error) {
return
""
,
err
}
err
=
fileAdder
.
addFile
(
filepath
.
Base
(
root
),
f
)
err
=
fileAdder
.
addFile
Node
(
filepath
.
Base
(
root
),
f
)
if
err
!=
nil
{
return
""
,
err
}
...
...
@@ -348,7 +348,7 @@ func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, ipld.No
defer
n
.
Blockstore
.
PinLock
()
.
Unlock
()
err
=
fileAdder
.
addFile
(
filename
,
files
.
NewReaderFile
(
r
))
err
=
fileAdder
.
addFile
Node
(
filename
,
files
.
NewReaderFile
(
r
))
if
err
!=
nil
{
return
""
,
nil
,
err
}
...
...
@@ -416,7 +416,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
// semantics.
it
:=
tf
.
Entries
()
for
it
.
Next
()
{
if
err
:=
adder
.
addFile
(
it
.
Name
(),
it
.
Node
());
err
!=
nil
{
if
err
:=
adder
.
addFile
Node
(
it
.
Name
(),
it
.
Node
());
err
!=
nil
{
return
nil
,
err
}
}
...
...
@@ -425,7 +425,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
}
break
default
:
if
err
:=
adder
.
addFile
(
""
,
file
);
err
!=
nil
{
if
err
:=
adder
.
addFile
Node
(
""
,
file
);
err
!=
nil
{
return
nil
,
err
}
break
...
...
@@ -443,7 +443,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
return
nd
,
adder
.
PinRoot
()
}
func
(
adder
*
Adder
)
addFile
(
path
string
,
file
files
.
Node
)
error
{
func
(
adder
*
Adder
)
addFile
Node
(
path
string
,
file
files
.
Node
)
error
{
defer
file
.
Close
()
err
:=
adder
.
maybePauseForGC
()
if
err
!=
nil
{
...
...
@@ -464,34 +464,38 @@ func (adder *Adder) addFile(path string, file files.Node) error {
}
adder
.
liveNodes
++
if
dir
,
ok
:=
file
.
(
files
.
Directory
);
ok
{
return
adder
.
addDir
(
path
,
dir
)
switch
f
:=
file
.
(
type
)
{
case
files
.
Directory
:
return
adder
.
addDir
(
path
,
f
)
case
*
files
.
Symlink
:
return
adder
.
addSymlink
(
path
,
f
)
case
files
.
File
:
return
adder
.
addFile
(
path
,
f
)
default
:
return
errors
.
New
(
"unknown file type"
)
}
}
// case for symlink
if
s
,
ok
:=
file
.
(
*
files
.
Symlink
);
ok
{
sdata
,
err
:=
unixfs
.
SymlinkData
(
s
.
Target
)
if
err
!=
nil
{
return
err
}
dagnode
:=
dag
.
NodeWithData
(
sdata
)
dagnode
.
SetCidBuilder
(
adder
.
CidBuilder
)
err
=
adder
.
dagService
.
Add
(
adder
.
ctx
,
dagnode
)
if
err
!=
nil
{
return
err
}
func
(
adder
*
Adder
)
addSymlink
(
path
string
,
l
*
files
.
Symlink
)
error
{
sdata
,
err
:=
unixfs
.
SymlinkData
(
l
.
Target
)
if
err
!=
nil
{
return
err
}
return
adder
.
addNode
(
dagnode
,
path
)
dagnode
:=
dag
.
NodeWithData
(
sdata
)
dagnode
.
SetCidBuilder
(
adder
.
CidBuilder
)
err
=
adder
.
dagService
.
Add
(
adder
.
ctx
,
dagnode
)
if
err
!=
nil
{
return
err
}
// case for regular file
return
adder
.
addNode
(
dagnode
,
path
)
}
func
(
adder
*
Adder
)
addFile
(
path
string
,
file
files
.
File
)
error
{
// if the progress flag was specified, wrap the file so that we can send
// progress updates to the client (over the output channel)
reader
,
ok
:=
file
.
(
io
.
Reader
)
if
!
ok
{
return
errors
.
New
(
"file doesn't support reading"
)
}
var
reader
io
.
Reader
=
file
if
adder
.
Progress
{
rdr
:=
&
progressReader
{
file
:
reader
,
path
:
path
,
out
:
adder
.
Out
}
if
fi
,
ok
:=
file
.
(
files
.
FileInfo
);
ok
{
...
...
@@ -542,7 +546,7 @@ func (adder *Adder) addDir(path string, dir files.Directory) error {
log
.
Infof
(
"%s is hidden, skipping"
,
fpath
)
continue
}
err
=
adder
.
addFile
(
fpath
,
it
.
Node
())
err
=
adder
.
addFile
Node
(
fpath
,
it
.
Node
())
if
err
!=
nil
{
return
err
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论