提交 62d23c06 作者: Jeromy

skip putting blocks we already have

License: MIT
Signed-off-by: 's avatarJeromy <jeromyj@gmail.com>
上级 e12adeca
......@@ -129,6 +129,15 @@ func (f *Filestore) Has(c *cid.Cid) (bool, error) {
}
func (f *Filestore) Put(b blocks.Block) error {
has, err := f.Has(b.Cid())
if err != nil {
return err
}
if has {
return nil
}
switch b := b.(type) {
case *posinfo.FilestoreNode:
return f.fm.Put(b)
......@@ -142,6 +151,15 @@ func (f *Filestore) PutMany(bs []blocks.Block) error {
var fstores []*posinfo.FilestoreNode
for _, b := range bs {
has, err := f.Has(b.Cid())
if err != nil {
return err
}
if has {
continue
}
switch b := b.(type) {
case *posinfo.FilestoreNode:
fstores = append(fstores, b)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论