Cloudreve/models/file.go

44 lines
1.1 KiB
Go
Raw Normal View History

2019-11-15 16:36:48 +08:00
package model
import (
"github.com/HFO4/cloudreve/pkg/util"
"github.com/jinzhu/gorm"
)
2019-11-15 16:36:48 +08:00
// File 文件
type File struct {
// 表字段
gorm.Model
Name string
SourceName string
UserID uint `gorm:"index:user_id"`
2019-11-15 16:36:48 +08:00
Size uint64
PicInfo string
FolderID uint `gorm:"index:folder_id"`
2019-11-15 16:36:48 +08:00
PolicyID uint
Dir string `gorm:"size:65536"`
}
2019-11-20 15:24:26 +08:00
// Create 创建文件记录
func (file *File) Create() (uint, error) {
if err := DB.Create(file).Error; err != nil {
util.Log().Warning("无法插入文件记录, %s", err)
2019-11-20 15:24:26 +08:00
return 0, err
}
return file.ID, nil
}
// GetFileByPathAndName 给定路径、文件名、用户ID查找文件
func GetFileByPathAndName(path string, name string, uid uint) (File, error) {
var file File
2019-11-24 13:06:15 +08:00
result := DB.Where("user_id = ? AND dir = ? AND name=?", uid, path, name).First(&file)
return file, result.Error
}
2019-11-24 13:06:15 +08:00
// GetChildFile 查找目录下子文件
2019-11-24 13:06:15 +08:00
func (folder *Folder) GetChildFile() ([]File, error) {
var files []File
result := DB.Where("folder_id = ?", folder.ID).Find(&files)
return files, result.Error
}