Documentation
¶
Index ¶
- type Addition
- type Local
- func (d *Local) Config() driver.Config
- func (d *Local) Copy(_ context.Context, srcObj, dstDir model.Obj) error
- func (d *Local) Drop(ctx context.Context) error
- func (d *Local) FileInfoToObj(ctx context.Context, fileInfo fs.FileInfo, reqPath string, dirPath string) model.Obj
- func (d *Local) Get(ctx context.Context, path string) (model.Obj, error)
- func (d *Local) GetAddition() driver.Additional
- func (d *Local) GetSnapshot(videoPath string) (imgData *bytes.Buffer, err error)
- func (d *Local) Init(ctx context.Context) error
- func (d *Local) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error)
- func (d *Local) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error)
- func (d *Local) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) error
- func (d *Local) Move(ctx context.Context, srcObj, dstDir model.Obj) error
- func (d *Local) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, ...) error
- func (d *Local) Remove(ctx context.Context, obj model.Obj) error
- func (d *Local) Rename(ctx context.Context, srcObj model.Obj, newName string) error
- type NopTokenBucket
- type StaticTokenBucket
- type TokenBucket
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Addition ¶
type Addition struct {
driver.RootPath
// Thumbnail 是否启用缩略图功能
Thumbnail bool `json:"thumbnail" required:"true" help:"启用缩略图功能"`
// ThumbCacheFolder 缩略图缓存文件夹路径
// 如果为空,则不会缓存缩略图到磁盘
ThumbCacheFolder string `json:"thumb_cache_folder" help:"缩略图缓存文件夹路径,留空则不缓存缩略图"`
// ThumbConcurrency 生成缩略图的并发数
// 控制可以同时生成多少个缩略图
ThumbConcurrency string `` /* 131-byte string literal not displayed */
// VideoThumbPos 视频缩略图位置
// 如果是数字(整数或浮点数),表示视频的秒数
// 如果以'%'结尾,表示视频时长的百分比
VideoThumbPos string `` /* 142-byte string literal not displayed */
// ShowHidden 是否显示隐藏文件和文件夹
ShowHidden bool `json:"show_hidden" default:"true" required:"false" help:"是否显示隐藏的文件和文件夹"`
// MkdirPerm 创建文件夹的权限,八进制表示
MkdirPerm string `json:"mkdir_perm" default:"777" help:"创建文件夹的权限(八进制)"`
// RecycleBinPath 回收站路径
// 如果为空或保持'delete permanently',则永久删除文件
RecycleBinPath string `` /* 134-byte string literal not displayed */
}
Addition 本地存储驱动的额外配置选项
type Local ¶
Local 本地存储驱动实现
func (*Local) FileInfoToObj ¶
func (d *Local) FileInfoToObj(ctx context.Context, fileInfo fs.FileInfo, reqPath string, dirPath string) model.Obj
FileInfoToObj 将文件信息转换为对象 参数:
- ctx: 上下文
- fileInfo: 文件信息
- reqPath: 请求路径
- dirPath: 目录完整路径
返回:
- model.Obj: 文件对象
func (*Local) GetAddition ¶
func (d *Local) GetAddition() driver.Additional
GetAddition 返回额外配置 实现driver.Driver接口
func (*Local) GetSnapshot ¶
GetSnapshot 获取视频的缩略图快照 参数:
- videoPath: 视频文件的完整路径
返回:
- *bytes.Buffer: 缩略图数据
- error: 错误信息
func (*Local) Put ¶
func (d *Local) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, up driver.UpdateProgress) error
Put 上传文件 实现driver.Driver接口
type NopTokenBucket ¶
type NopTokenBucket struct {
// contains filtered or unexported fields
}
NopTokenBucket 无操作令牌桶实现 所有操作都会立即成功,不进行实际限流
type StaticTokenBucket ¶
type StaticTokenBucket struct {
// contains filtered or unexported fields
}
StaticTokenBucket 固定大小的令牌桶实现 初始状态下桶是满的,令牌的获取和归还需要手动控制
func NewStaticTokenBucket ¶
func NewStaticTokenBucket(size int) StaticTokenBucket
NewStaticTokenBucket 创建一个新的固定大小令牌桶 size: 桶的容量(最大令牌数)
func NewStaticTokenBucketWithMigration ¶
func NewStaticTokenBucketWithMigration(oldBucket TokenBucket, size int) StaticTokenBucket
NewStaticTokenBucketWithMigration 创建一个新的令牌桶,并从旧桶迁移令牌 oldBucket: 旧的令牌桶 size: 新桶的容量
func (StaticTokenBucket) Do ¶
func (b StaticTokenBucket) Do(ctx context.Context, f func() error) error
Do 使用令牌执行函数 ctx: 上下文,用于取消操作 f: 要执行的函数
func (StaticTokenBucket) Take ¶
func (b StaticTokenBucket) Take() <-chan struct{}
Take 获取一个令牌 注意:当驱动被修改时,通道可能会被关闭 通道关闭后不应再调用Put方法
Click to show internal directories.
Click to hide internal directories.