lapi

package
v0.1.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2025 License: GPL-3.0 Imports: 12 Imported by: 0

README

Leither lapi

lapi package for the Leither project.

Installation

go get github.com/3and4/Leither/lapi

Documentation

Overview

backend.go

vars.go

Index

Constants

View Source
const (
	Request_AppVer  = "ver"
	Request_Author  = "author"
	Request_AppName = "app"
	Request_AppID   = "aid"
	Request_Entry   = "entry"
	Request_MID     = "mid" //内部必然有一个
	Request_Sid     = "sid" //内部必然有一个
	Request_NodeID  = "nid"
	Request_SidApp  = "sidapp" //应用sid,作者身份

	ApiVarNodeAppCode = "nodeappcode"
)
View Source
const (
	TFile = iota
	TDir
)
View Source
const (
	ApiVarVersion       = "ver"           //应用版本
	ApiVarCPU           = "cpu"           //获取cpu的状态
	ApiVarDisk          = "disk"          //获取cpu的状态
	ApiVarVirtualMemory = "virtualmemory" //获取虚拟内存的状态
	ApiVarMiMeiInfo     = "mminfo"        //弥媒信息

)

Variables

This section is empty.

Functions

func GetArgs

func GetArgs() []any

func GetLocalPassport

func GetLocalPassport(port int, validPeriod int) (string, error)

GetLocalPassport 从本地节点获取通行证

func GetRequest

func GetRequest() map[string]string

func InitStubByUrl

func InitStubByUrl(stub any, url string)

提取出来,可以指定api的Stub使用

func ScorePairs2Members

func ScorePairs2Members(sps []ScorePair) []string

原来两处引用,现在只剩下一处了

Types

type AuthStub

type AuthStub struct {
	LoginWithPPT func(strPPT string) (*LoginReply, error)
	Logout       func(sid, info string) error
}

type BEAppDataStub

type BEAppDataStub struct {
	BEOpenAppDataNode func(string, string) (mmsid string, err error)
	BEOpenAppDataApp  func(string, string) (mmsid string, err error)
	BEMMSync          func(strdhts string, mid string, param map[string]string) error
	BELoginAsAuthor   func() (sid string, err error)
	BELoginAsApp      func() (sid string, err error)
	BESignPPT         func(info map[string]string, period int) (string, error)
	BESign            func(info map[string]string) (string, error)
}

BEAppDataStub

这里面放的是应用中后端数据操作的api接口。

一、BEOpenAppDataNode(ver string) (mmsid string, err error) 简介:

这是应用在节点上的打开节点的弥媒

参数:

ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本

返回值:

mmsid 弥媒的数据id,可用于数据库相关的api操作

二、BEOpenAppDataApp(ver, mark string) (mmsid string, err error) 简介:

打开节点的弥媒

参数:

ver,弥媒的版本,cur表示当前的可写版本,last表示最后一次备份的版本

返回值:

mmsid 弥媒的数据id,可用于数据库相关的api操作

BELoginAsAuthor()(sid string, err error)

简介:

以作者作者身份登陆

返回值:

Sessionid,可用于所有需要会话id的api,执行的时候代表作者身份

type BackEndStub

type BackEndStub struct {
	//	*ApiStub
	*LApiStub
	*SessionStub
	*BEAppDataStub
}

func GetLApi

func GetLApi() *BackEndStub

用于xgo,调用前会替换

type FVPair

type FVPair struct {
	Field string
	Value any
}

type FileInfo

type FileInfo struct {
	FName    string    // base name of the file
	FSize    int64     // length in bytes for regular files; system-dependent for others
	FModTime time.Time // modification time
	FIsDir   bool      // abbreviation for Mode().IsDir()
	FMode    os.FileMode
}

func (FileInfo) Info

func (fi FileInfo) Info() (os.FileInfo, error)

func (FileInfo) IsDir

func (fi FileInfo) IsDir() bool

func (FileInfo) ModTime

func (fi FileInfo) ModTime() time.Time

func (FileInfo) Mode

func (fi FileInfo) Mode() os.FileMode

func (FileInfo) Name

func (fi FileInfo) Name() string

func (FileInfo) Size

func (fi FileInfo) Size() int64

func (FileInfo) Sys

func (fi FileInfo) Sys() interface{}

func (FileInfo) Type

func (fi FileInfo) Type() os.FileMode

兼容目录DirEntry

type FilesStub

type FilesStub struct {
	FilesCopy  func(sid, src, dst string, flush bool) error
	FilesLs    func(sid, ps string) ([]LsLink, error)
	FilesMkdir func(sid, ps string, flush bool) error
	FilesRm    func(sid, ps string, recursive, flush bool) error
	FilesMv    func(sid, src, dst string, flush bool) error
	FilesFlush func(sid, ps string) (string, error)
	FilesStat  func(sid, ps string) (*StatInfo, error)
}

type LApiStub

type LApiStub struct {
	AuthStub
	VarActStub
	MiMeiStub
	FilesStub
}

Package lapi provides RPC functionality for the Leither project

func InitLApiStubByUrl

func InitLApiStubByUrl(url string) *LApiStub

type LoginReply

type LoginReply struct {
	Sid string
	Uid string
}

NOTE:这个sid是有有效期的

type LsLink struct {
	Name   string
	Hash   string
	Size   uint64
	Type   int //unixfs_pb.Data_DataType
	Target string
}

func (*LsLink) IsDir

func (link *LsLink) IsDir() bool

type MDbStub

type MDbStub struct {
	Begin            func(mmsid string, timeout int) error
	Commit           func(mmsid string) error
	Rollback         func(mmsid string) error
	GetLastSeq       func(mmsid string) (uint64, error)
	Set              func(mmsid, key string, value any) error
	Get              func(mmsid, key string) (any, error)
	Del              func(mmsid string, key ...string) (int64, error)
	Incr             func(mmsid, key string) (int64, error)
	IncrBy           func(mmsid, key string, delta int64) (int64, error)
	Strlen           func(mmsid, key string) (int64, error)
	Hmclear          func(mmsid string, key ...string) (int64, error)
	Hclear           func(mmsid string, key string) (int64, error)
	Hdel             func(mmsid, key string, field ...string) (int64, error)
	Hlen             func(mmsid, key string) (int64, error)
	Hset             func(mmsid, key, field string, value any) (int64, error)
	Hget             func(mmsid, key, field string) (any, error)
	Hmget            func(mmsid, key string, fields ...string) ([]any, error)
	Hmset            func(mmsid, key string, values ...FVPair) error
	Hgetall          func(mmsid, key string) ([]FVPair, error)
	Hkeys            func(mmsid, key string) ([]string, error)
	Hscan            func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	Hrevscan         func(mmsid, key, beginfield, match string, count int, inclusive bool) (ret []FVPair, err error)
	HincrBy          func(mmsid, key, field string, delta int64) (ret int64, err error)
	Lpush            func(mmsid, key string, value ...any) (int64, error)
	Lpop             func(mmsid, key string) (any, error)
	Rpush            func(mmsid, key string, value ...any) (int64, error)
	Rpop             func(mmsid, key string) (any, error)
	Lrange           func(mmsid, key string, start, stop int32) ([]any, error)
	Lclear           func(mmsid, key string) (int64, error)
	Lmclear          func(mmsid string, keys ...string) (int64, error)
	Lindex           func(mmsid, key string, index int32) (any, error)
	Llen             func(mmsid, key string) (int64, error)
	Lset             func(mmsid, key string, index int32, value any) error
	Zadd             func(mmsid, key string, args ...ScorePair) (int64, error)
	Zaddwithseq      func(mmsid, key string, members ...string) (ret int64, err error)
	Zcard            func(mmsid, key string) (int64, error)
	Zcount           func(mmsid, key string, mins, maxs int64) (int64, error)
	Zrem             func(mmsid, key string, members ...string) (int64, error)
	Zscore           func(mmsid, key, member string) (int64, error)
	Zrank            func(mmsid, key, member string) (int64, error)
	Zrange           func(mmsid, key string, start, stop int) ([]ScorePair, error)
	Zrangebyscore    func(mmsid, key string, mins, maxs int64, offset int, count int) ([]ScorePair, error)
	Zremrangebyscore func(mmsid, key string, mins, maxs int64) (int64, error)
	Zrevrange        func(mmsid, key string, start, stop int) (ret []ScorePair, err error)
	Zrevrangebyscore func(mmsid, key string, mins, maxs int64, offset int, count int) (ret []ScorePair, err error)
	Zmclear          func(mmsid string, key ...string) (int64, error)
	Zclear           func(mmsid, key string) (int64, error)
	ZincrBy          func(mmsid, key string, delta int64, member string) (ret int64, err error)
	Sadd             func(mmsid, key string, args ...string) (int64, error)
	Scard            func(mmsid, key string) (int64, error)
	Sclear           func(mmsid, key string) (int64, error)
	Sdiff            func(mmsid string, keys ...string) ([]string, error)
	Sinter           func(mmsid string, keys ...string) ([]string, error)
	Smclear          func(mmsid string, key ...string) (int64, error)
	Smembers         func(mmsid, key string) ([]string, error)
	Srem             func(mmsid, key string, m string) (int64, error)
	Sunion           func(mmsid string, keys ...string) ([]string, error)
	Scan             func(mmsid string, begin, match string, count int, inclusive bool, tp byte) (keys []string, err error)
	MMSyncData       func(sid, mid, tp string, mark []byte, count uint64, verseq ...uint64) ([]byte, error)
	CheckIntegrity   func(mmsid string, dataType uint8, key string, bRepair bool) error //校验数据
}

type MFileStub

type MFileStub struct {
	MFOpenByPath    func(sid, mid, path string, flag int) (string, error)
	MFOpenMacFile   func(sid, mid, fileid string) (string, error)
	MFOpenTempFile  func(sid string) (string, error)
	MFPath2TempID   func(sid, localpath string) (string, error) //这个函数有争议
	MFLocal2MacFile func(sid, mid, ps string) (string, error)
	MFTemp2MacFile  func(fsid, mid string) (string, error)
	MFTemp2Ipfs     func(fsid, mid string) (string, error)
	MFTemp2Files    func(fsid, ps string) (string, error)
	MFTruncate      func(fsid string, size int64) error
	MFSetObject     func(fsid string, obj any) error
	MFGetObject     func(fsid string) (any, error)
	MFSetData       func(fsid string, data []byte, start int64) (count int, err error)
	MFGetData       func(fsid string, start int64, count int) ([]byte, error)
	MFGetSize       func(fsid string) (int64, error)
	MFStat          func(fsid string) (*FileInfo, error)
	MFIsExist       func(fsid, fileid string) (bool, error)
	MFReaddir       func(fsid string, count int) ([]*FileInfo, error)
	MFGetMimeType   func(fsid string) (string, error)
	MFSetCid        func(sid, mid, cid string) (string, error)
}

type MMInfo

type MMInfo struct {
	Author   string    //作者
	AppType  string    //应用类型
	Ext      string    //扩展信息
	Mark     string    //标识
	DataType string    //数据类型
	Create   time.Time //创建时间
}

type MiMeiInfo

type MiMeiInfo struct {
	MMInfo
	Right uint64 //权限 在这里不恰当
}

type MiMeiRefs

type MiMeiRefs = map[string]map[string]int

后续应该是单独文件,先放这里

type MiMeiStub

type MiMeiStub struct {
	MFileStub
	MDbStub

	MMCreate   func(sid, appid, ext, mark string, tp byte, right uint64) (mid string, err error)
	MMOpen     func(sid, mid, ver string, opt ...string) (string, error)
	MMOpenUrl  func(sid, ps string) (string, error)
	MMClose    func(mmsid string) error
	MMSetRight func(sid, mid, member string, right uint64) error
	MMGetRight func(sid, mmid, uid string) (right uint64, err error)
	MMBackup   func(sid, mid, memo string, opt ...string) (string, error) //snapshot
	MMRestore  func(sid, mid, ver string) error
	MMDelVers  func(sid, mid string, vers ...string) (int64, error)
	MMRelease  func(sid, mid, ver string) (string, error)
	MMAddRef   func(sid, mid string, fileids ...string) (int, error)
	MMDelRef   func(sid, mid string, fileids ...string) (int, error)
	MMGetRef   func(sid, mid, ver string) (ret Refs, err error)
	MMGetRefs  func(sid, mid string, vers ...string) (MiMeiRefs, error)
	MMSum      func(sid, mid, ver, tp string) (string, error) //

}

type Refs

type Refs = map[string]int

type ScorePair

type ScorePair struct {
	Score  int64
	Member string
}

type SessionStub

type SessionStub struct {
	CreateSession  func() (sid string)
	SessionSet     func(sid, key string, value any) error
	SessionGet     func(sid, key string) (value any, err error)
	SessionDelete  func(sid, key string) error
	ReleaseSession func(sid string) error
}

SessionStub

Session可以保存用户的状态和上下文信息。

CreateSession创建一个session并返回id.

通过这个id可以在后端程序中读写删除状态,不同的后端模块之间也可以共享信息

这个状态是存放在内存中的,超过1小时不访问就会被GC清作

type StatCPU

type StatCPU = []float64

type StatInfo

type StatInfo struct {
	Hash           string
	Size           uint64
	CumulativeSize uint64
	Blocks         int
	Type           string
	WithLocality   bool
	Local          bool
	SizeLocal      uint64
}

func (*StatInfo) IsDir

func (link *StatInfo) IsDir() bool

ndtype = "directory" ndtype = "file"

type StatUsage

type StatUsage = disk.UsageStat
type UsageStat struct {
	Path              string  `json:"path"`
	Fstype            string  `json:"fstype"`
	Total             uint64  `json:"total"`
	Free              uint64  `json:"free"`
	Used              uint64  `json:"used"`
	UsedPercent       float64 `json:"usedPercent"`
	InodesTotal       uint64  `json:"inodesTotal"`
	InodesUsed        uint64  `json:"inodesUsed"`
	InodesFree        uint64  `json:"inodesFree"`
	InodesUsedPercent float64 `json:"inodesUsedPercent"`
}

type StatVirtualMemory

type StatVirtualMemory = mem.VirtualMemoryStat

type VarActStub

type VarActStub struct {
	GetVar          func(sid, name string, args ...string) (any, error)
	GetVarByContext func(sid, name string, mapOpt map[string]string) (any, error)
	Act             func(sid, name string, args ...string) error
	GetGobVar       func(sid, name string, args ...string) ([]byte, error)
}

func (*VarActStub) GetVarObj

func (wa *VarActStub) GetVarObj(obj any, sid string, name string, args ...string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL