Documentation ¶
Index ¶
- Constants
- func ExtractFolder(objs []Obj, extractFolder string)
- func GetThumb(obj Obj) (thumb string, ok bool)
- func GetUrl(obj Obj) (url string, ok bool)
- func HashPwd(static string, salt string) string
- func SortFiles(objs []Obj, orderBy, orderDirection string)
- func StaticHash(password string) string
- func TwoHashPwd(password string, salt string) string
- func WrapObjsName(objs []Obj)
- type File
- type FileStreamer
- type FsOtherArgs
- type IndexProgress
- type Link
- type LinkArgs
- type ListArgs
- type Meta
- type NopMFile
- type NopMFileIF
- type Obj
- type ObjMerge
- type ObjThumb
- type ObjThumbURL
- type ObjUnwrap
- type ObjWrapName
- type Object
- func (o *Object) CreateTime() time.Time
- func (o *Object) GetHash() utils.HashInfo
- func (o *Object) GetID() string
- func (o *Object) GetName() string
- func (o *Object) GetPath() string
- func (o *Object) GetSize() int64
- func (o *Object) IsDir() bool
- func (o *Object) ModTime() time.Time
- func (o *Object) SetPath(path string)
- type ObjectURL
- type OtherArgs
- type PageReq
- type Proxy
- type RangeReadCloser
- type RangeReadCloserIF
- type RangeReaderFunc
- type SearchNode
- type SearchReq
- type SetPath
- type SettingItem
- type Sort
- type Storage
- type Thumb
- type Thumbnail
- type URL
- type Url
- type User
- func (u *User) CanAccessWithoutPassword() bool
- func (u *User) CanAddOfflineDownloadTasks() bool
- func (u *User) CanCopy() bool
- func (u *User) CanMove() bool
- func (u *User) CanRemove() bool
- func (u *User) CanRename() bool
- func (u *User) CanSeeHides() bool
- func (u *User) CanWebdavManage() bool
- func (u *User) CanWebdavRead() bool
- func (u *User) CanWrite() bool
- func (u *User) IsAdmin() bool
- func (u *User) IsGuest() bool
- func (u *User) JoinPath(reqPath string) (string, error)
- func (u *User) SetPassword(pwd string) *User
- func (u *User) ValidatePwdStaticHash(pwdStaticHash string) error
- func (u *User) ValidateRawPassword(password string) error
- func (u *User) WebAuthnCredentials() []webauthn.Credential
- func (u *User) WebAuthnDisplayName() string
- func (u *User) WebAuthnID() []byte
- func (u *User) WebAuthnIcon() string
- func (u *User) WebAuthnName() string
Constants ¶
View Source
const ( SINGLE = iota SITE STYLE PREVIEW GLOBAL OFFLINE_DOWNLOAD INDEX SSO LDAP S3 )
View Source
const ( PUBLIC = iota PRIVATE READONLY DEPRECATED )
View Source
const ( GENERAL = iota GUEST // only one exists ADMIN )
View Source
const MaxInt = int(MaxUint >> 1)
View Source
const MaxUint = ^uint(0)
View Source
const MinInt = -MaxInt - 1
View Source
const MinUint = 0
View Source
const StaticHashSalt = "https://github.com/8Mi-Tech/alist"
Variables ¶
This section is empty.
Functions ¶
func ExtractFolder ¶
func StaticHash ¶
func TwoHashPwd ¶
func WrapObjsName ¶
func WrapObjsName(objs []Obj)
Types ¶
type File ¶
File is basic file level accessing interface
func NewNopMFile ¶
func NewNopMFile(r NopMFileIF) File
type FileStreamer ¶
type FileStreamer interface { io.Reader io.Closer Obj GetMimetype() string //SetReader(io.Reader) NeedStore() bool IsForceStreamUpload() bool GetExist() Obj SetExist(Obj) //for a non-seekable Stream, RangeRead supports peeking some data, and CacheFullInTempFile still works RangeRead(http_range.Range) (io.Reader, error) //for a non-seekable Stream, if Read is called, this function won't work CacheFullInTempFile() (File, error) }
FileStreamer ->check FileStream for more comments
type FsOtherArgs ¶
type IndexProgress ¶
type Link ¶
type Link struct { URL string `json:"url"` // most common way Header http.Header `json:"header"` // needed header (for url) RangeReadCloser RangeReadCloserIF `json:"-"` // recommended way if can't use URL MFile File `json:"-"` // best for local,smb... file system, which exposes MFile Expiration *time.Duration // local cache expire Duration IPCacheKey bool `json:"-"` // add ip to cache key //for accelerating request, use multi-thread downloading Concurrency int `json:"concurrency"` PartSize int `json:"part_size"` }
type Meta ¶
type Meta struct { ID uint `json:"id" gorm:"primaryKey"` Path string `json:"path" gorm:"unique" binding:"required"` Password string `json:"password"` PSub bool `json:"p_sub"` Write bool `json:"write"` WSub bool `json:"w_sub"` Hide string `json:"hide"` HSub bool `json:"h_sub"` Readme string `json:"readme"` RSub bool `json:"r_sub"` Header string `json:"header"` HeaderSub bool `json:"header_sub"` }
type NopMFile ¶
type NopMFile struct {
NopMFileIF
}
type Obj ¶
type Obj interface { GetSize() int64 GetName() string ModTime() time.Time CreateTime() time.Time IsDir() bool GetHash() utils.HashInfo // The internal information of the driver. // If you want to use it, please understand what it means GetID() string GetPath() string }
func WrapObjName ¶
type ObjMerge ¶
type ObjMerge struct {
// contains filtered or unexported fields
}
func (*ObjMerge) InitHideReg ¶
type ObjThumbURL ¶
type ObjWrapName ¶
func (*ObjWrapName) GetName ¶
func (o *ObjWrapName) GetName() string
func (*ObjWrapName) Unwrap ¶
func (o *ObjWrapName) Unwrap() Obj
type Object ¶
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 }
func GetRawObject ¶
func (*Object) CreateTime ¶
type PageReq ¶
type Proxy ¶
type Proxy struct { WebProxy bool `json:"web_proxy"` WebdavPolicy string `json:"webdav_policy"` ProxyRange bool `json:"proxy_range"` DownProxyUrl string `json:"down_proxy_url"` }
func (Proxy) WebdavNative ¶
func (Proxy) WebdavProxy ¶
type RangeReadCloser ¶
type RangeReadCloser struct { RangeReader RangeReaderFunc utils.Closers }
func (RangeReadCloser) RangeRead ¶
func (r RangeReadCloser) RangeRead(ctx context.Context, httpRange http_range.Range) (io.ReadCloser, error)
type RangeReadCloserIF ¶
type RangeReadCloserIF interface { RangeRead(ctx context.Context, httpRange http_range.Range) (io.ReadCloser, error) utils.ClosersIF }
type RangeReaderFunc ¶
type RangeReaderFunc func(ctx context.Context, httpRange http_range.Range) (io.ReadCloser, error)
type WriterFunc func(w io.Writer) error
type SearchNode ¶
type SearchNode struct { Parent string `json:"parent" gorm:"index"` Name string `json:"name"` IsDir bool `json:"is_dir"` Size int64 `json:"size"` }
func (*SearchNode) Type ¶
func (s *SearchNode) Type() string
type SearchReq ¶
type SettingItem ¶
type SettingItem struct { Key string `json:"key" gorm:"primaryKey" binding:"required"` // unique key Value string `json:"value"` // value PreDefault string `json:"-" gorm:"-:all"` // deprecated value Help string `json:"help"` // help message Type string `json:"type"` // string, number, bool, select Options string `json:"options"` // values for select Group int `json:"group"` // use to group setting in frontend Flag int `json:"flag"` // 0 = public, 1 = private, 2 = readonly, 3 = deprecated, etc. }
func (SettingItem) IsDeprecated ¶
func (s SettingItem) IsDeprecated() bool
type Storage ¶
type Storage struct { ID uint `json:"id" gorm:"primaryKey"` // unique key MountPath string `json:"mount_path" gorm:"unique" binding:"required"` // must be standardized Order int `json:"order"` // use to sort Driver string `json:"driver"` // driver used CacheExpiration int `json:"cache_expiration"` // cache expire time Status string `json:"status"` Addition string `json:"addition" gorm:"type:text"` // Additional information, defined in the corresponding driver Remark string `json:"remark"` Modified time.Time `json:"modified"` Disabled bool `json:"disabled"` // if disabled EnableSign bool `json:"enable_sign"` Sort Proxy }
func (*Storage) GetStorage ¶
func (*Storage) SetStorage ¶
type User ¶
type User struct { ID uint `json:"id" gorm:"primaryKey"` // unique key Username string `json:"username" gorm:"unique" binding:"required"` // username PwdHash string `json:"-"` // password hash PwdTS int64 `json:"-"` // password timestamp Salt string `json:"-"` // unique salt Password string `json:"password"` // password BasePath string `json:"base_path"` // base path Role int `json:"role"` // user's role Disabled bool `json:"disabled"` // Determine permissions by bit // 0: can see hidden files // 1: can access without password // 2: can add offline download tasks // 3: can mkdir and upload // 4: can rename // 5: can move // 6: can copy // 7: can remove // 8: webdav read // 9: webdav write Permission int32 `json:"permission"` OtpSecret string `json:"-"` SsoID string `json:"sso_id"` // unique by sso platform Authn string `gorm:"type:text" json:"-"` }
func (*User) CanAccessWithoutPassword ¶
func (*User) CanAddOfflineDownloadTasks ¶
func (*User) CanSeeHides ¶
func (*User) CanWebdavManage ¶
func (*User) CanWebdavRead ¶
func (*User) SetPassword ¶
func (*User) ValidatePwdStaticHash ¶
func (*User) ValidateRawPassword ¶
func (*User) WebAuthnCredentials ¶
func (u *User) WebAuthnCredentials() []webauthn.Credential
func (*User) WebAuthnDisplayName ¶
func (*User) WebAuthnID ¶
func (*User) WebAuthnIcon ¶
func (*User) WebAuthnName ¶
Click to show internal directories.
Click to hide internal directories.