file

package
v1.0.8 Latest Latest
Warning

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

Go to latest
Published: May 3, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Directory

type Directory struct {
	types.BaseModel
	ParentID uint32 `json:"parent_id"`
	Name     string `json:"name"`
	App      string `json:"app"`
}

type Factory added in v1.0.8

type Factory interface {
	Storage() string
	ChunkCount(size int64) int
	GetType(name string) string
	StoreKey(sha string, tp string) string
	CheckType(tp string) error
	CheckSize(size int64) error
	MaxSingularSize() int64
	MaxChunkSize() int64
	FileSrcFormat() string
	FileSrc(src string) string
	FileMime(body []byte) string
	Store(ctx kratosx.Context) (store.Store, error)
}

type File

type File struct {
	types.BaseModel
	DirectoryID uint32     `json:"directory_id"`
	Name        string     `json:"name"`
	Type        string     `json:"type"`
	Size        uint32     `json:"size"`
	Sha         string     `json:"sha"`
	Src         string     `json:"src"`
	UploadID    *string    `json:"upload_id"`
	ChunkCount  uint32     `json:"chunk_count"`
	Storage     string     `json:"storage"`
	Status      string     `json:"status"`
	Directory   *Directory `json:"directory"`
}

type GetDirectoryByAppRequest

type GetDirectoryByAppRequest struct {
	App      string `json:"app"`
	ParentID uint32 `json:"parent_id"`
}

type GetFileRequest

type GetFileRequest struct {
	Src     string `json:"src"`
	Width   int    `json:"width"`
	Height  int    `json:"height"`
	Mode    string `json:"mode"`
	IsRange bool   `json:"is_range"`
	Start   int64  `json:"start"`
	End     int64  `json:"end"`
}

type GetFileResponse

type GetFileResponse struct {
	Data []byte `json:"data"`
	Mime string `json:"mime"`
}

type PageFileRequest

type PageFileRequest struct {
	Page        uint32 `json:"page"`
	PageSize    uint32 `json:"page_size"`
	Name        string `json:"name"`
	DirectoryId uint32 `json:"directory_id"`
}

type PrepareUploadFileReply

type PrepareUploadFileReply struct {
	Uploaded     *bool   `json:"uploaded"`
	Src          *string `json:"src"`
	ChunkSize    *uint32 `json:"chunk_size"`
	ChunkCount   *uint32 `json:"chunk_count"`
	UploadId     *string `json:"upload_id"`
	UploadChunks []int   `json:"upload_chunks"`
	Sha          *string `json:"sha"`
}

type PrepareUploadFileRequest

type PrepareUploadFileRequest struct {
	DirectoryId   uint32 `json:"directory_id"`
	DirectoryPath string `json:"directory_path"`
	App           string `json:"app"`
	Name          string `json:"name"`
	Sha           string `json:"sha"`
	Size          uint32 `json:"size"`
}

type Repo

type Repo interface {
	AddDirectory(ctx kratosx.Context, in *Directory) (uint32, error)
	GetDirectoryByID(ctx kratosx.Context, id uint32) (*Directory, error)
	GetDirectoryByName(ctx kratosx.Context, id uint32, name string) (*Directory, error)
	GetDirectoryByPaths(ctx kratosx.Context, app string, paths []string) (*Directory, error)
	UpdateDirectory(ctx kratosx.Context, in *Directory) error
	DeleteDirectory(ctx kratosx.Context, id uint32) error
	AllDirectoryByParentID(ctx kratosx.Context, pid uint32, app string) ([]*Directory, error)
	DirectoryCountByParentID(ctx kratosx.Context, id uint32) (int64, error)

	CopyFile(ctx kratosx.Context, src *File, did uint32, name string) error

	// FileCountByName(ctx kratosx.Context, did uint32, name string) (int64, error)
	FileCountByDirectoryID(ctx kratosx.Context, id uint32) (int64, error)

	GetFileByID(ctx kratosx.Context, id uint32) (*File, error)
	GetFileBySha(ctx kratosx.Context, keyword string) (*File, error)
	GetFileByUploadID(ctx kratosx.Context, uid string) (*File, error)
	PageFile(ctx kratosx.Context, req *PageFileRequest) ([]*File, uint32, error)
	AddFile(ctx kratosx.Context, c *File) error
	UpdateFile(ctx kratosx.Context, file *File) error
	UpdateFileSuccess(ctx kratosx.Context, id uint32) error
	DeleteFile(ctx kratosx.Context, id uint32) error
	DeleteFiles(ctx kratosx.Context, pid uint32, ids []uint32) error
}

type UploadFileReply

type UploadFileReply struct {
	Src string
	Sha string
}

type UploadFileRequest

type UploadFileRequest struct {
	Data     []byte `json:"data"`
	UploadId string `json:"upload_id"`
	Index    uint32 `json:"index"`
}

type UseCase

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

func NewUseCase

func NewUseCase(config *config.Config, repo Repo, factory Factory) *UseCase

func (*UseCase) AddDirectory

func (u *UseCase) AddDirectory(ctx kratosx.Context, in *Directory) (uint32, error)

func (*UseCase) AllDirectoryByParentID

func (u *UseCase) AllDirectoryByParentID(ctx kratosx.Context, pid uint32, app string) ([]*Directory, error)

func (*UseCase) DeleteDirectory

func (u *UseCase) DeleteDirectory(ctx kratosx.Context, id uint32, app string) error

func (*UseCase) DeleteFiles

func (u *UseCase) DeleteFiles(ctx kratosx.Context, pid uint32, ids []uint32) error

DeleteFiles 删除文件

func (*UseCase) GetFile

func (u *UseCase) GetFile(ctx kratosx.Context, in *GetFileRequest) (*GetFileResponse, error)

func (*UseCase) GetFileBySha

func (u *UseCase) GetFileBySha(ctx kratosx.Context, sha string) (*File, error)

func (*UseCase) PageFile

func (u *UseCase) PageFile(ctx kratosx.Context, in *PageFileRequest) ([]*File, uint32, error)

func (*UseCase) PrepareUploadFile

func (u *UseCase) PrepareUploadFile(ctx kratosx.Context, in *PrepareUploadFileRequest) (*PrepareUploadFileReply, error)

PrepareUploadFile 预上传文件

func (*UseCase) UpdateDirectory

func (u *UseCase) UpdateDirectory(ctx kratosx.Context, in *Directory) error

func (*UseCase) UpdateFile

func (u *UseCase) UpdateFile(ctx kratosx.Context, file *File) error

UpdateFile 修改文件名称

func (*UseCase) UploadFile

func (u *UseCase) UploadFile(ctx kratosx.Context, in *UploadFileRequest) (*UploadFileReply, error)

Jump to

Keyboard shortcuts

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