func (ssc *SSHConfig) CopyFile(local_path, remote_path string) (err tree_lib.TreeError) { var ( sft *sftp.Client f *sftp.File file_data []byte ) err.From = tree_lib.FROM_SSH_COPY_FILE sft, err.Err = sftp.NewClient(ssc.conn) if !err.IsNull() { return } defer sft.Close() file_data, err.Err = ioutil.ReadFile(local_path) if !err.IsNull() { return } f, err.Err = sft.Create(remote_path) if !err.IsNull() { return } _, err.Err = f.Write(file_data) f.Close() sft.Close() return }