mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2026-11-12 05:30:47 +08:00
* feat(alias): support load balance * feat(alias): support storage match for load balance * feat(patch): add alias addition upgrade patch * fix bugs * fix(op/balance): optimize compatibility * chore: change default read conflict policy * feat(alias): refactor Alias initialization and enhance path handling * feat(alias): enhance object masking and add support for operation restrictions * feat(alias): enhance object masking * feat(fs): add permission checks * improve parsing * update object masks * feat(fs): enhance virtual file handling * feat(storage): enhance virtual file retrieval and path handling * refactor(alias): rename path handling functions for clarity and consistency * fix(alias): update path handling in Other method to use balanced path * fix bug * feat(alias): add file size validation * feat(alias): add hash consistency check * 移除哈希合并, * fix(alias): wrong behavior for all_strict/deterministic_or_all * Revert "fix(alias): wrong behavior for all_strict/deterministic_or_all" This reverts commit f001f2dcd76d5711d2b1f44d04edf646f32c75a7. * fix(alias): wrong behavior for all_strict/deterministic_or_all * feat(alias): support part-based read load balance * fix(alias): list panic when leak conflict path * fix(alias): remove Other load balance * fix(alias): 修复 Link 方法中 resultLink 的返回类型和内容复制问题 * fix(alias): 更好的下载并发? * chore(alias): all tips * fix(alias): moving paths mismatch --------- Co-authored-by: j2rong4cn <j2rong@qq.com> Co-authored-by: ShenLin <773933146@qq.com>
120 lines
1.5 KiB
Go
120 lines
1.5 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/OpenListTeam/OpenList/v4/pkg/utils"
|
|
)
|
|
|
|
type ObjWrapName struct {
|
|
Name string
|
|
Obj
|
|
}
|
|
|
|
func (o *ObjWrapName) Unwrap() Obj {
|
|
return o.Obj
|
|
}
|
|
|
|
func (o *ObjWrapName) GetName() string {
|
|
return o.Name
|
|
}
|
|
|
|
type Object struct {
|
|
ID string
|
|
Path string
|
|
Name string
|
|
Size int64
|
|
Modified time.Time
|
|
Ctime time.Time // file create time
|
|
IsFolder bool
|
|
HashInfo utils.HashInfo
|
|
Mask ObjMask
|
|
}
|
|
|
|
func (o *Object) GetName() string {
|
|
return o.Name
|
|
}
|
|
|
|
func (o *Object) GetSize() int64 {
|
|
return o.Size
|
|
}
|
|
|
|
func (o *Object) ModTime() time.Time {
|
|
return o.Modified
|
|
}
|
|
func (o *Object) CreateTime() time.Time {
|
|
if o.Ctime.IsZero() {
|
|
return o.ModTime()
|
|
}
|
|
return o.Ctime
|
|
}
|
|
|
|
func (o *Object) IsDir() bool {
|
|
return o.IsFolder
|
|
}
|
|
|
|
func (o *Object) GetID() string {
|
|
return o.ID
|
|
}
|
|
|
|
func (o *Object) GetPath() string {
|
|
return o.Path
|
|
}
|
|
|
|
func (o *Object) SetPath(path string) {
|
|
o.Path = path
|
|
}
|
|
|
|
func (o *Object) GetHash() utils.HashInfo {
|
|
return o.HashInfo
|
|
}
|
|
|
|
func (o *Object) GetObjMask() ObjMask {
|
|
return o.Mask
|
|
}
|
|
|
|
type Thumbnail struct {
|
|
Thumbnail string
|
|
}
|
|
|
|
type Url struct {
|
|
Url string
|
|
}
|
|
|
|
func (w Url) URL() string {
|
|
return w.Url
|
|
}
|
|
|
|
func (t Thumbnail) Thumb() string {
|
|
return t.Thumbnail
|
|
}
|
|
|
|
type ObjThumb struct {
|
|
Object
|
|
Thumbnail
|
|
}
|
|
|
|
type ObjectURL struct {
|
|
Object
|
|
Url
|
|
}
|
|
|
|
type ObjThumbURL struct {
|
|
Object
|
|
Thumbnail
|
|
Url
|
|
}
|
|
|
|
type Provider struct {
|
|
Provider string
|
|
}
|
|
|
|
func (p Provider) GetProvider() string {
|
|
return p.Provider
|
|
}
|
|
|
|
type ObjectProvider struct {
|
|
Object
|
|
Provider
|
|
}
|