diff --git a/config/config.go b/config/config.go index 9e26b58..afed44f 100644 --- a/config/config.go +++ b/config/config.go @@ -14,6 +14,7 @@ var GobalIpfsUrl ="localhost:5001" //ipfs引导节点网关 var ServerIpfsUrl = "10.240.10.238:5001" +//var ServerIpfsUrl = "vpn.azut.cn:5001" func InitConfig(){ diff --git a/handle/handle.go b/handle/handle.go index 5c21b16..91539b2 100644 --- a/handle/handle.go +++ b/handle/handle.go @@ -130,6 +130,16 @@ func DownCommand(conn *websocket.Conn, hash, projectName, fileName, dir string) } defer tfile.Close() + //serverSh := shell.NewShell(config.ServerIpfsUrl) + ////检测引导节点是否连接成功 + //isUp := serverSh.IsUp() + //if !isUp { + // if err := conn.WriteMessage(websocket.TextMessage, []byte("-1")); err != nil { + // return err + // } + // return nil + //} + cmd := exec.Command(ipfsPath,"get", hash,"-o",fmt.Sprint(absoluteDir+"\\"+fileName)) progress := make(chan string,10000) var stdout, stderr []byte @@ -294,6 +304,17 @@ func UploadCommand(conn *websocket.Conn,absolutePath,fileName,projectName,dir st } defer tfile.Close() + serverSh := shell.NewShell(config.ServerIpfsUrl) + //检测引导节点是否连接成功 + isUp := serverSh.IsUp() + if !isUp { + if err := conn.WriteMessage(websocket.TextMessage, []byte("-1")); err != nil { + return err + } + return nil + } + + var uploading bool=false cmd := exec.Command(ipfsPath, "add",absolutePath) @@ -401,19 +422,22 @@ func UploadCommand(conn *websocket.Conn,absolutePath,fileName,projectName,dir st projson,err :=json.Marshal(prog) + err = serverSh.Pin(prog.Hash) + if err != nil { + log.Println("引导节点备份失败") + log.Println(err) + if err := conn.WriteMessage(websocket.TextMessage, []byte("-1")); err != nil { + return err + } + return err + } + if err := conn.WriteMessage(websocket.TextMessage, projson); err != nil { - panic(err) + log.Println(err) } - go func() { - serverSh := shell.NewShell(config.ServerIpfsUrl) - err = serverSh.Pin(prog.Hash) - if err != nil { - log.Println("引导节点备份失败") - log.Println(err) - } - log.Println("引导节点文件备份成功") - }() + log.Println("引导节点文件备份成功") + //本地文件夹拷贝 err = sh.Get(prog.Hash,fmt.Sprint((absoluteDir+"\\"+fileName)))