siyouyunsdk

package module
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

README

siyouyun_sdk

Siyouyun FaaS Service SDK

Documentation

Index

Constants

View Source
const (
	SiyouyunPrefix = "/.siyouyun"
	AppPrefix      = SiyouyunPrefix + "/appdata"
)
View Source
const (
	AppCodeEnvKey = "APPCODE"
	IconPath      = "/home/app/icon.png"
)
View Source
const (
	FileEventAdd = iota + 1
	FileEventDelete
)

文件事件类型,文件创建与文件删除

Variables

This section is empty.

Functions

func Alive added in v0.3.2

func Alive(ctx iris.Context)

Alive 激活函数接口

func EnableMessage added in v0.2.20

func EnableMessage(desc string, handler func(appfs *AppFS, content string) (reply bool, replyContent string, replyToUUID bool)) error

EnableMessage 开启消息机器人 desc:

消息机器人的功能描述

handler func(content string) (reply bool, replyContent string, replyToUUID bool):

入参:
	- content 用户发送到机器人的消息正文
返回值:
	- reply 		:	是否需要回复
	- replyContent	:	回复的正文
	- replyToUUID	:	回复时是否引用用户消息

func GetIcon added in v0.4.4

func GetIcon(ctx iris.Context)

GetIcon 获取图标

func ListenMsg added in v0.2.20

func ListenMsg(mh *MessageHandlerStruct)

Types

type Ability added in v0.2.3

type Ability struct {
	KV       *KV
	FFmpeg   *FFmpeg
	Schedule *Schedule
	Message  *Message
}

type AppBuilder added in v0.4.16

type AppBuilder struct {
	// contains filtered or unexported fields
}

AppBuilder app builder

func NewAppBuilder added in v0.4.16

func NewAppBuilder(appCode string) *AppBuilder

NewAppBuilder new a custom app builder

func (*AppBuilder) Build added in v0.4.16

func (b *AppBuilder) Build()

func (*AppBuilder) WithApi added in v0.4.16

func (b *AppBuilder) WithApi(api SiyouFaaSApi) *AppBuilder

func (*AppBuilder) WithDB added in v0.4.16

func (b *AppBuilder) WithDB(db *gorm.DB) *AppBuilder

type AppFS added in v0.1.22

type AppFS struct {
	*Ability
	// contains filtered or unexported fields
}

func (*AppFS) Chtimes added in v0.1.25

func (afs *AppFS) Chtimes(path string, atime time.Time, mtime time.Time) error

Chtimes 修改文件时间

func (*AppFS) Destroy added in v0.1.24

func (afs *AppFS) Destroy()

func (*AppFS) EnsureDirExist added in v0.1.22

func (afs *AppFS) EnsureDirExist(path string)

EnsureDirExist 确保目录存在

func (*AppFS) Exec added in v0.2.15

func (afs *AppFS) Exec(f func(*gorm.DB) error) error

func (*AppFS) FileExists added in v0.1.22

func (afs *AppFS) FileExists(path string) bool

FileExists 文件是否存在

func (*AppFS) GetUGN added in v0.4.12

func (afs *AppFS) GetUGN() *utils.UserGroupNamespace

func (*AppFS) InodeToFileInfo added in v0.1.22

func (afs *AppFS) InodeToFileInfo(inode uint64) *sdkdto.FileInfoRes

InodeToFileInfo inode转fileInfo

func (*AppFS) InodeToPath added in v0.1.22

func (afs *AppFS) InodeToPath(inode uint64) string

InodeToPath inode转path

func (*AppFS) InodesToFileInfos added in v0.1.22

func (afs *AppFS) InodesToFileInfos(inodes ...uint64) map[uint64]*sdkdto.FileInfoRes

InodesToFileInfos inodes转fileInfos

func (*AppFS) MkdirAll added in v0.1.22

func (afs *AppFS) MkdirAll(path string) error

MkdirAll 递归创建目录

func (*AppFS) Open added in v0.1.22

func (afs *AppFS) Open(path string) (*os.File, error)

Open 打开文件

func (*AppFS) OpenFile added in v0.1.22

func (afs *AppFS) OpenFile(path string, flag int, perm os.FileMode) (*os.File, error)

OpenFile 打开或创建文件

func (*AppFS) PathToInode added in v0.1.22

func (afs *AppFS) PathToInode(path string) uint64

PathToInode path转inode

func (*AppFS) Remove added in v0.1.22

func (afs *AppFS) Remove(path string) error

Remove 删除文件或空目录

func (*AppFS) RemoveAll added in v0.4.23

func (afs *AppFS) RemoveAll(path string) error

RemoveAll 删除文件或文件夹(包括子目录)

func (*AppFS) Rename added in v0.1.22

func (afs *AppFS) Rename(oldPath, newPath string) error

Rename 重命名文件

type AppStruct added in v0.1.23

type AppStruct struct {
	AppCode  string
	Event    *EventHolder
	Schedule *ScheduleHandler
	Api      SiyouFaaSApi // app interfaces
	// contains filtered or unexported fields
}
var App *AppStruct

func NewApp

func NewApp() *AppStruct

NewApp new standard app

func (*AppStruct) NewAppFSFromCtx added in v0.1.23

func (a *AppStruct) NewAppFSFromCtx(ctx iris.Context) *AppFS

func (*AppStruct) NewAppFSFromUserGroupNamespace added in v0.4.9

func (a *AppStruct) NewAppFSFromUserGroupNamespace(ugn *utils.UserGroupNamespace) *AppFS

func (*AppStruct) NewFSFromCtx added in v0.1.23

func (a *AppStruct) NewFSFromCtx(ctx iris.Context) *FS

func (*AppStruct) NewFSFromUserGroupNamespace added in v0.4.9

func (a *AppStruct) NewFSFromUserGroupNamespace(ugn *utils.UserGroupNamespace) *FS

func (*AppStruct) UpdateModel added in v0.4.2

func (a *AppStruct) UpdateModel(f func(gorm.Migrator))

UpdateModel 更新表(需要删除更改字段或索引时使用)

func (*AppStruct) WithEventHolder added in v0.1.23

func (a *AppStruct) WithEventHolder(nc ...*nats.Conn)

WithEventHolder 初始化事件监听器

func (*AppStruct) WithModel added in v0.1.24

func (a *AppStruct) WithModel(models ...interface{})

WithModel 自动迁移表

func (*AppStruct) WithScheduleEvent added in v0.2.29

func (a *AppStruct) WithScheduleEvent()

type ConsumeStatus added in v0.2.7

type ConsumeStatus int
const (
	ConsumeSuccess ConsumeStatus = iota + 1
	ConsumeRetry
	ConsumeFail
)

type EventFS added in v0.1.21

type EventFS struct {
	FileEvent *FileEvent
	FS        *FS
	AppFS     *AppFS
	*Ability
}

func (*EventFS) Destroy added in v0.1.24

func (efs *EventFS) Destroy()

func (*EventFS) Exec added in v0.2.15

func (efs *EventFS) Exec(f func(*gorm.DB) error) error

func (*EventFS) OpenAvatarFile added in v0.4.15

func (efs *EventFS) OpenAvatarFile() (*os.File, error)

OpenAvatarFile open event's avatar file

func (*EventFS) OpenEventFile added in v0.1.21

func (efs *EventFS) OpenEventFile() (*os.File, error)

OpenEventFile open event's file

type EventHolder added in v0.1.7

type EventHolder struct {
	// contains filtered or unexported fields
}

func (*EventHolder) Listen added in v0.1.7

func (e *EventHolder) Listen()

Listen 开始监听器工作

func (*EventHolder) SetPrefer added in v0.1.7

func (e *EventHolder) SetPrefer(options ...PreferOptions)

SetPrefer 设置偏好与回调函数

type FFmpeg added in v0.2.3

type FFmpeg struct {
	*gateway.FFmpegOSApi
}

func (*FFmpeg) GetBasicInfo added in v0.2.3

func (ff *FFmpeg) GetBasicInfo(parentPath, name string) (*sdkdto.FFmpegBasicInfo, error)

func (*FFmpeg) GetDetailInfo added in v0.2.3

func (ff *FFmpeg) GetDetailInfo(parentPath, name string) (*sdkdto.FFProbeInfo, error)

type FS added in v0.1.7

type FS struct {
	*Ability

	App *AppStruct
	UGN *utils.UserGroupNamespace
	// contains filtered or unexported fields
}

FS fs

func (*FS) Chtimes added in v0.1.25

func (fs *FS) Chtimes(path string, atime time.Time, mtime time.Time) error

Chtimes 修改文件时间

func (*FS) Destroy added in v0.1.24

func (fs *FS) Destroy()

func (*FS) EnsureDirExist added in v0.1.16

func (fs *FS) EnsureDirExist(path string)

EnsureDirExist 确保目录存在

func (*FS) Exec added in v0.1.19

func (fs *FS) Exec(f func(*gorm.DB) error) error

Exec fs执行sql

func (*FS) FileExists added in v0.1.16

func (fs *FS) FileExists(path string) bool

FileExists 文件是否存在

func (*FS) InodeToFileInfo added in v0.1.16

func (fs *FS) InodeToFileInfo(inode uint64) *sdkdto.FileInfoRes

InodeToFileInfo inode转fileInfo

func (*FS) InodeToPath added in v0.1.16

func (fs *FS) InodeToPath(inode uint64) string

InodeToPath inode转path

func (*FS) InodesToFileInfos added in v0.1.16

func (fs *FS) InodesToFileInfos(inodes ...uint64) map[uint64]*sdkdto.FileInfoRes

InodesToFileInfos inodes转fileInfos

func (*FS) MkdirAll added in v0.1.21

func (fs *FS) MkdirAll(path string) error

MkdirAll 递归创建目录

func (*FS) NewFFmpeg added in v0.2.3

func (fs *FS) NewFFmpeg() *FFmpeg

func (*FS) NewKV added in v0.2.3

func (fs *FS) NewKV() *KV

func (*FS) NewSchedule added in v0.2.29

func (fs *FS) NewSchedule() *Schedule

func (*FS) Open added in v0.1.7

func (fs *FS) Open(path string) (*os.File, error)

Open 打开文件

func (*FS) OpenAvatarFile added in v0.4.13

func (fs *FS) OpenAvatarFile(path string) (*os.File, error)

func (*FS) OpenByInode added in v0.4.0

func (fs *FS) OpenByInode(inode uint64) (*os.File, error)

OpenByInode 根据inode打开文件

func (*FS) OpenFile added in v0.1.21

func (fs *FS) OpenFile(path string, flag int, perm os.FileMode) (*os.File, error)

OpenFile 打开或创建文件

func (*FS) PathToInode added in v0.1.16

func (fs *FS) PathToInode(path string) uint64

PathToInode path转inode

func (*FS) Remove added in v0.1.21

func (fs *FS) Remove(path string) error

Remove 删除文件或空目录

func (*FS) RemoveAll added in v0.4.22

func (fs *FS) RemoveAll(path string) error

RemoveAll 删除文件或文件夹(包括子目录)

func (*FS) Rename added in v0.1.21

func (fs *FS) Rename(oldPath, newPath string) error

Rename 重命名文件

type FileEvent added in v0.1.7

type FileEvent struct {
	UGN        *utils.UserGroupNamespace `json:"ugn"`
	Inode      uint64                    `json:"inode"`
	FullPath   string                    `json:"fullPath"`
	Action     int                       `json:"action"`
	WithAvatar bool                      `json:"withAvatar"` // 事件是否通过替身处理
}

type KV added in v0.2.3

type KV struct {
	*gateway.KVCoreApi
}

func (*KV) DeleteKV added in v0.2.3

func (kv *KV) DeleteKV(kvType, key string) error

func (*KV) GetKV added in v0.2.3

func (kv *KV) GetKV(kvType, key string) (*sdkdto.KV, bool)

func (*KV) PutKV added in v0.2.3

func (kv *KV) PutKV(kvType, key, value string) error

type MediaType added in v0.4.5

type MediaType string

MediaType 文件媒体类型

const (
	MediaTypeText    MediaType = "text"
	MediaTypeImage   MediaType = "image"
	MediaTypeAudio   MediaType = "audio"
	MediaTypeVideo   MediaType = "video"
	MediaTypeMessage MediaType = "message"
)

偏好设置可以关注的文件媒体类型,上半部分为标准媒体类型,下半部分为自定义媒体类型 标准媒体类型

const (
	MediaTypeAll        MediaType = "all"         // 全部类型
	MediaTypeCompress   MediaType = "compress"    // 压缩包类型
	MediaTypeImageVideo MediaType = "image-video" // 图片+视频类型
	MediaTypeDoc        MediaType = "doc"         // 文档类型
	MediaTypeBt         MediaType = "bt"          // 种子类型
	MediaTypeEbook      MediaType = "ebook"       // 电子书类型
	MediaTypeSoftware   MediaType = "software"    // 软件包类型
	MediaTypeOther      MediaType = "other"       // 其他类型
)

自定义媒体类型

type Message added in v0.2.47

type Message struct {
}

func (*Message) SendMsg added in v0.2.47

func (m *Message) SendMsg(ugn *utils.UserGroupNamespace, content string) error

SendMsg 发送消息给用户,只有权限发送给拥有此app的用户 ugn : 用户与空间 content : 消息正文

type MessageEvent added in v0.2.20

type MessageEvent struct {
	UGN       utils.UserGroupNamespace `json:"ugn"`
	UUID      string                   `json:"uuid"`
	Content   string                   `json:"content"`
	SessionId string                   `json:"sessionId"`

	SendByAdmin bool `json:"sendByAdmin"`
}

MessageEvent 消息在事件中传递的结构

type MessageHandlerStruct added in v0.2.20

type MessageHandlerStruct struct {
	RobotCode string                                                                                 `json:"robotCode"`
	RobotDesc string                                                                                 `json:"robotDesc"`
	Handler   func(appfs *AppFS, content string) (reply bool, replyContent string, replyToUUID bool) `json:"-"`
}

type PreferOptions added in v0.1.7

type PreferOptions struct {
	MediaType     MediaType                                 `json:"mediaType"`     // 媒体类型
	FileEventType int                                       `json:"fileEventType"` // 事件类型
	FollowDirs    []string                                  `json:"followDirs"`    // 关注目录(不设置默认所有)
	ExcludeExts   []string                                  `json:"excludeExts"`   // 排除的文件后缀
	Description   string                                    `json:"description"`   // 描述
	Priority      TaskLevel                                 `json:"priority"`      // 优先级(资源占用等级)
	Handler       func(fs *EventFS) (ConsumeStatus, string) `json:"-"`             // 处理器
}

PreferOptions 事件偏好选项

type Schedule added in v0.2.29

type Schedule struct {
	*gateway.ScheduleApi
}

func (*Schedule) AddCronScheduleEvent added in v0.2.29

func (s *Schedule) AddCronScheduleEvent(name string, payload []byte, c string) (err error, eventId *int64)

func (*Schedule) AddOnceScheduleEvent added in v0.2.29

func (s *Schedule) AddOnceScheduleEvent(name string, payload []byte, remindTime int64) (err error, eventId *int64)

func (*Schedule) UpdateCronScheduleEvent added in v0.2.32

func (s *Schedule) UpdateCronScheduleEvent(eventId int64, c string) (err error)

func (*Schedule) UpdateOnceScheduleEvent added in v0.2.32

func (s *Schedule) UpdateOnceScheduleEvent(eventId int64, remindTime int64) (err error)

type ScheduleEvent added in v0.2.29

type ScheduleEvent struct {
	UGN        utils.UserGroupNamespace `json:"ugn"`
	RemindTime int64                    `json:"remindTime"`
	Name       string                   `json:"name"`
	Payload    []byte                   `json:"payload"`
}

type ScheduleEventHandler added in v0.2.29

type ScheduleEventHandler struct {
	Name    string
	Handler func(fs *EventFS, se *ScheduleEvent)
}

type ScheduleHandler added in v0.2.29

type ScheduleHandler struct {
	// contains filtered or unexported fields
}

func (*ScheduleHandler) Listen added in v0.2.29

func (sh *ScheduleHandler) Listen()

func (*ScheduleHandler) SetHandler added in v0.2.29

func (sh *ScheduleHandler) SetHandler(shs ...ScheduleEventHandler)

type SiyouFaaSApi added in v0.4.15

type SiyouFaaSApi map[string]func(iris.Context)

func (SiyouFaaSApi) Delete added in v0.4.15

func (api SiyouFaaSApi) Delete(uri string, f func(iris.Context))

func (SiyouFaaSApi) Get added in v0.4.15

func (api SiyouFaaSApi) Get(uri string, f func(iris.Context))

func (SiyouFaaSApi) Post added in v0.4.15

func (api SiyouFaaSApi) Post(uri string, f func(iris.Context))

func (SiyouFaaSApi) Put added in v0.4.15

func (api SiyouFaaSApi) Put(uri string, f func(iris.Context))

type TaskLevel added in v0.2.14

type TaskLevel int
const (
	HighLevel TaskLevel = iota + 1
	MidLevel
	LowLevel
)

Directories

Path Synopsis
internal
pkg
dto

Jump to

Keyboard shortcuts

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