ipfs add命令

本文介绍了ipfs add命令的调试入口、执行过程,包括在go-ipfs/core/add.go中的关键函数AddCmd,以及prerun、run、postrun的执行情况。当daemon运行时,run由守护进程执行,同时并发执行postrun。详细探讨了add命令的参数处理和文件添加流程,涉及unixfs的api调用,以及在uinxfs.go中如何通过fileadder实现文件类型的判断与添加。
摘要由CSDN通过智能技术生成

1.调试入口

在go-ipfs/cmd/ipfs/runmain_test中加上参数,开始调试

args := []string{"add","./init.go"}

2.进入core

在go-ipfs/core/add.go 里面有add命令的执行函数AddCmd,主要有prerun,run和postrun,如果调试的时候没有开启ipfs daemon,那么这三个函数均在本地执行,如果这个时候开启了daemon,本地执行的是prerun,postrun。而run则由daemon来执行。其中run和postrun是并发执行的(详见ipfs/go-ipfs-cmds/exector.go),如下图

3.add命令参数

add命令参数很多,prerun和run里面大部分都是进行参数初始化的操作。

4.api add

		for addit.Next() {
			_, dir := addit.Node().(files.Directory)
			go func() {
				var err error
				defer close(events)
				_, err = api.Unixfs().Add(req.Context, addit.Node(), opts...)
				errCh <- err
			}()
			for event :=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值