Cloudreve/pkg/filesystem/hook.go

26 lines
606 B
Go
Raw Normal View History

2019-11-16 16:05:10 +08:00
package filesystem
2019-11-16 20:31:34 +08:00
import (
"context"
"errors"
)
2019-11-16 16:05:10 +08:00
// GenericBeforeUpload 通用上传前处理钩子,包含数据库操作
2019-11-16 20:31:34 +08:00
func GenericBeforeUpload(ctx context.Context, fs *FileSystem, file FileData) error {
2019-11-16 16:05:10 +08:00
// 验证单文件尺寸
2019-11-16 20:31:34 +08:00
if !fs.ValidateFileSize(ctx, file.GetSize()) {
2019-11-16 16:05:10 +08:00
return errors.New("单个文件尺寸太大")
}
// 验证并扣除容量
2019-11-16 20:31:34 +08:00
if !fs.ValidateCapacity(ctx, file.GetSize()) {
2019-11-16 16:05:10 +08:00
return errors.New("容量空间不足")
}
// 验证扩展名
2019-11-16 20:31:34 +08:00
if !fs.ValidateExtension(ctx, file.GetFileName()) {
2019-11-16 16:05:10 +08:00
return errors.New("不允许上传此类型的文件")
}
return nil
}