fileserver

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalculateFileIdent

func CalculateFileIdent(platform, userId string, file io.Reader) (string, error)

CalculateFileIdent 计算文件标识符

func CalculateFileInfoIdent

func CalculateFileInfoIdent(targetId, src string) (string, error)

CalculateFileInfoIdent 计算文件信息标识符

func DeleteFile

func DeleteFile(ident string) error

DeleteFile 删除文件

func DeleteFileInfo

func DeleteFileInfo(ident string) error

DeleteFileInfo 删除文件信息

func GetPath added in v0.1.3

func GetPath(path string) (string, error)

GetPath 获取文件本地路径

func InternalURL

func InternalURL(meta *FileMetadata) string

InternalURL 获取内部链接格式

func InternalURLPrefix

func InternalURLPrefix() string

InternalURLPrefix 获取内部链接前缀

func ParseInternalURL

func ParseInternalURL(url string) (string, string, string, bool)

ParseInternalURL 解析内部链接

func StartFileServer

func StartFileServer(conf *config.Config)

StartFileServer 启动文件服务器

Types

type FileInfo

type FileInfo struct {
	ID       string `json:"id"`        // 文件唯一标识 ID
	FileInfo string `json:"file_info"` // 开放平台返回的文件信息
	CreateAt uint64 `json:"create_at"` // 文件创建时间戳
	TTL      uint64 `json:"ttl"`       // 文件有效时间
	// contains filtered or unexported fields
}

FileInfo 文件信息

func GetFileInfo

func GetFileInfo(ident string) (*FileInfo, error)

GetFileInfo 获取文件信息

func SaveFileInfo

func SaveFileInfo(targetId, src, fileInfo string, ttl uint64) (*FileInfo, error)

SaveFileInfo 保存文件信息

func (*FileInfo) MarshalBinary

func (m *FileInfo) MarshalBinary() ([]byte, error)

MarshalBinary 序列化文件信息为二进制

func (*FileInfo) UnmarshalBinary

func (m *FileInfo) UnmarshalBinary(data []byte) error

UnmarshalBinary 反序列化二进制数据为文件信息

type FileInfoDatabase

type FileInfoDatabase struct {
	DB *leveldb.DB
	// contains filtered or unexported fields
}

FileInfoDatabase 文件信息数据库

func StartFileInfoDB

func StartFileInfoDB() (*FileInfoDatabase, error)

StartFileInfoDB 启动文件信息数据库

func (*FileInfoDatabase) DeleteFileInfo

func (db *FileInfoDatabase) DeleteFileInfo(ident string) error

DeleteFileInfo 删除文件信息

func (*FileInfoDatabase) GetFileInfo

func (db *FileInfoDatabase) GetFileInfo(ident string) (*FileInfo, error)

GetFileInfo 获取文件信息

func (*FileInfoDatabase) GetFileInfos

func (db *FileInfoDatabase) GetFileInfos() (map[string]*FileInfo, error)

GetFileInfos 获取所有文件信息

func (*FileInfoDatabase) SaveFileInfo

func (db *FileInfoDatabase) SaveFileInfo(ident string, info *FileInfo) error

SaveFileInfo 保存文件信息

type FileMetadata

type FileMetadata struct {
	ID          string `json:"id"`           // 文件唯一标识 ID
	Name        string `json:"name"`         // 文件名
	URL         string `json:"url"`          // 文件内部链接
	Path        string `json:"path"`         // 文件存储相对路径
	ContentType string `json:"content_type"` // 文件内容类型
	CreateAt    uint64 `json:"create_at"`    // 文件创建时间戳
	TTL         uint64 `json:"ttl"`          // 文件有效时间
	// contains filtered or unexported fields
}

FileMetadata 文件元数据

func GetFile

func GetFile(ident string) (*FileMetadata, error)

GetFile 获取文件内容

func SaveFile

func SaveFile(file io.Reader, platform, userId, name, fileType string) (*FileMetadata, error)

SaveFile 保存文件并返回内部链接

func (*FileMetadata) MarshalBinary

func (m *FileMetadata) MarshalBinary() ([]byte, error)

MarshalBinary 序列化文件元数据为二进制

func (*FileMetadata) UnmarshalBinary

func (m *FileMetadata) UnmarshalBinary(data []byte) error

UnmarshalBinary 反序列化二进制数据为文件元数据

type FileServer

type FileServer struct {

	// URL 文件服务器 URL
	URL string
	// EnableLocalFileServer 是否使用本地文件服务器
	Enable bool
	// TTL 默认文件有效期
	TTL time.Duration
	// MetaDB 文件元数据数据库
	MetaDB *MetaDatabase
	// FileInfoDB 文件信息数据库
	FileInfoDB *FileInfoDatabase
	// contains filtered or unexported fields
}

FileServer 文件服务器

type MetaDatabase

type MetaDatabase struct {
	DB *leveldb.DB
	// contains filtered or unexported fields
}

MetaDatabase 文件元数据数据库

func StartMetaDB

func StartMetaDB() (*MetaDatabase, error)

StartMetaDB 启动文件元数据数据库

func (*MetaDatabase) DeleteFileMeta

func (db *MetaDatabase) DeleteFileMeta(ident string) error

DeleteFileMeta 删除文件元数据

func (*MetaDatabase) GetFileMeta

func (db *MetaDatabase) GetFileMeta(ident string) (*FileMetadata, error)

GetFileMeta 获取文件元数据

func (*MetaDatabase) GetFileMetas

func (db *MetaDatabase) GetFileMetas() (map[string]*FileMetadata, error)

GetFileMetas 获取所有文件元数据

func (*MetaDatabase) SaveFileMeta

func (db *MetaDatabase) SaveFileMeta(ident string, meta *FileMetadata) error

SaveFileMeta 保存文件元数据

Jump to

Keyboard shortcuts

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