mirror of https://github.com/Xhofe/alist
refactor: optimize driver initialization need to manually deserialize and assign values, and remove redundant driver registration parameters (#2691)
* refactor: optimize driver initialization need to manually deserialize and assign values, and remove redundant driver registration parameters * fix typo Co-authored-by: Noah Hsu <i@nn.ci>pull/2701/head
parent
3ee45c69a7
commit
33bae52fa1
|
@ -22,15 +22,10 @@ func (d *Pan115) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Pan115) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Pan115) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Pan115) Init(ctx context.Context) error {
|
||||
return d.login()
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
)
|
||||
|
||||
type Addition struct {
|
||||
Cookie string `json:"cookie"`
|
||||
Cookie string `json:"cookie"`
|
||||
QRCodeToken string `json:"qrcode_token"`
|
||||
driver.RootID
|
||||
}
|
||||
|
@ -18,10 +18,8 @@ var config = driver.Config{
|
|||
OnlyLocal: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Pan115{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Pan115{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -37,15 +37,10 @@ func (d *Pan123) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Pan123) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Pan123) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Pan123) Init(ctx context.Context) error {
|
||||
return d.login()
|
||||
}
|
||||
|
||||
|
|
|
@ -21,10 +21,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "0",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Pan123{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Pan123{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@ -27,16 +26,11 @@ func (d *Yun139) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Yun139) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Yun139) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = d.post("/orchestration/personalCloud/user/v1.0/qryUserExternInfo", base.Json{
|
||||
func (d *Yun139) Init(ctx context.Context) error {
|
||||
_, err := d.post("/orchestration/personalCloud/user/v1.0/qryUserExternInfo", base.Json{
|
||||
"qryUserExternInfoReq": base.Json{
|
||||
"commonAccountInfo": base.Json{
|
||||
"account": d.Account,
|
||||
|
|
|
@ -19,7 +19,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Yun139{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -26,15 +26,10 @@ func (d *Cloud189) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Cloud189) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Cloud189) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Cloud189) Init(ctx context.Context) error {
|
||||
d.client = resty.New().
|
||||
SetTimeout(base.DefaultTimeout).
|
||||
SetRetryCount(3).
|
||||
|
|
|
@ -18,7 +18,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Cloud189{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -31,15 +31,10 @@ func (y *Yun189PC) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (y *Yun189PC) GetAddition() driver.Additional {
|
||||
return y.Addition
|
||||
return &y.Addition
|
||||
}
|
||||
|
||||
func (y *Yun189PC) Init(ctx context.Context, storage model.Storage) (err error) {
|
||||
y.Storage = storage
|
||||
if err = utils.Json.UnmarshalFromString(y.Storage.Addition, &y.Addition); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
func (y *Yun189PC) Init(ctx context.Context) (err error) {
|
||||
// 处理个人云和家庭云参数
|
||||
if y.isFamily() && y.RootFolderID == "-11" {
|
||||
y.RootFolderID = ""
|
||||
|
|
|
@ -24,7 +24,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Yun189PC{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/alist-org/alist/v3/server/common"
|
||||
)
|
||||
|
||||
|
@ -21,21 +20,16 @@ func (d *AListV2) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *AListV2) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *AListV2) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *AListV2) Init(ctx context.Context) error {
|
||||
if len(d.Addition.Address) > 0 && string(d.Addition.Address[len(d.Addition.Address)-1]) == "/" {
|
||||
d.Addition.Address = d.Addition.Address[0 : len(d.Addition.Address)-1]
|
||||
}
|
||||
// TODO login / refresh token
|
||||
//op.MustSaveDriverStorage(d)
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *AListV2) Drop(ctx context.Context) error {
|
||||
|
|
|
@ -20,7 +20,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &AListV2{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/drivers/base"
|
||||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/alist-org/alist/v3/server/common"
|
||||
)
|
||||
|
||||
|
@ -24,19 +23,14 @@ func (d *AListV3) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *AListV3) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *AListV3) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *AListV3) Init(ctx context.Context) error {
|
||||
d.Addition.Address = strings.TrimSuffix(d.Addition.Address, "/")
|
||||
// TODO login / refresh token
|
||||
//op.MustSaveDriverStorage(d)
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *AListV3) Drop(ctx context.Context) error {
|
||||
|
|
|
@ -19,7 +19,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &AListV3{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -38,18 +38,13 @@ func (d *AliDrive) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *AliDrive) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *AliDrive) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *AliDrive) Init(ctx context.Context) error {
|
||||
// TODO login / refresh token
|
||||
//op.MustSaveDriverStorage(d)
|
||||
err = d.refreshToken()
|
||||
err := d.refreshToken()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -18,10 +18,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "root",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &AliDrive{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &AliDrive{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -29,16 +29,11 @@ func (d *AliyundriveShare) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *AliyundriveShare) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *AliyundriveShare) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = d.refreshToken()
|
||||
func (d *AliyundriveShare) Init(ctx context.Context) error {
|
||||
err := d.refreshToken()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &AliyundriveShare{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -31,15 +31,10 @@ func (d *BaiduNetdisk) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *BaiduNetdisk) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *BaiduNetdisk) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *BaiduNetdisk) Init(ctx context.Context) error {
|
||||
return d.refreshToken()
|
||||
}
|
||||
|
||||
|
|
|
@ -20,10 +20,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &BaiduNetdisk{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &BaiduNetdisk{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -29,15 +29,10 @@ func (d *BaiduPhoto) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *BaiduPhoto) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *BaiduPhoto) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *BaiduPhoto) Init(ctx context.Context) error {
|
||||
return d.refreshToken()
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &BaiduPhoto{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/jlaffaye/ftp"
|
||||
)
|
||||
|
||||
|
@ -22,15 +21,10 @@ func (d *FTP) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *FTP) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *FTP) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *FTP) Init(ctx context.Context) error {
|
||||
return d.login()
|
||||
}
|
||||
|
||||
|
|
|
@ -19,10 +19,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &FTP{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &FTP{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -27,15 +27,10 @@ func (d *GoogleDrive) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *GoogleDrive) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *GoogleDrive) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *GoogleDrive) Init(ctx context.Context) error {
|
||||
if d.ChunkSize == 0 {
|
||||
d.ChunkSize = 5
|
||||
}
|
||||
|
|
|
@ -21,10 +21,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "root",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &GoogleDrive{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &GoogleDrive{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -26,15 +26,10 @@ func (d *GooglePhoto) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *GooglePhoto) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *GooglePhoto) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *GooglePhoto) Init(ctx context.Context) error {
|
||||
return d.refreshToken()
|
||||
}
|
||||
|
||||
|
|
|
@ -21,10 +21,8 @@ var config = driver.Config{
|
|||
LocalSort: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &GooglePhoto{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &GooglePhoto{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/go-resty/resty/v2"
|
||||
)
|
||||
|
||||
|
@ -25,15 +24,10 @@ func (d *LanZou) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *LanZou) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *LanZou) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *LanZou) Init(ctx context.Context) error {
|
||||
if d.IsCookie() {
|
||||
if d.RootFolderID == "" {
|
||||
d.RootFolderID = "-1"
|
||||
|
|
|
@ -25,7 +25,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &LanZou{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -34,12 +34,7 @@ func (d *Local) Config() driver.Config {
|
|||
return config
|
||||
}
|
||||
|
||||
func (d *Local) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Local) Init(ctx context.Context) (err error) {
|
||||
if !utils.Exists(d.GetRootPath()) {
|
||||
err = fmt.Errorf("root folder %s not exists", d.GetRootPath())
|
||||
} else {
|
||||
|
@ -59,7 +54,7 @@ func (d *Local) Drop(ctx context.Context) error {
|
|||
}
|
||||
|
||||
func (d *Local) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Local) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
|
||||
|
|
|
@ -19,10 +19,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Local{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Local{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -36,16 +36,11 @@ func (d *MediaTrack) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *MediaTrack) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *MediaTrack) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = d.request("https://kayle.api.mediatrack.cn/users", http.MethodGet, nil, nil)
|
||||
func (d *MediaTrack) Init(ctx context.Context) error {
|
||||
_, err := d.request("https://kayle.api.mediatrack.cn/users", http.MethodGet, nil, nil)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &MediaTrack{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/chanio"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/t3rm1n4l/go-mega"
|
||||
)
|
||||
|
@ -26,15 +25,10 @@ func (d *Mega) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Mega) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Mega) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Mega) Init(ctx context.Context) error {
|
||||
d.c = mega.New()
|
||||
return d.c.Login(d.Email, d.Password)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Mega{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -25,15 +25,10 @@ func (d *Onedrive) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Onedrive) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Onedrive) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Onedrive) Init(ctx context.Context) error {
|
||||
if d.ChunkSize < 1 {
|
||||
d.ChunkSize = 5
|
||||
}
|
||||
|
|
|
@ -23,10 +23,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Onedrive{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Onedrive{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -35,15 +35,10 @@ func (d *PikPak) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *PikPak) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *PikPak) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *PikPak) Init(ctx context.Context) error {
|
||||
return d.login()
|
||||
}
|
||||
|
||||
|
|
|
@ -17,10 +17,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &PikPak{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &PikPak{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -29,16 +29,11 @@ func (d *Quark) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Quark) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Quark) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = d.request("/config", http.MethodGet, nil, nil)
|
||||
func (d *Quark) Init(ctx context.Context) error {
|
||||
_, err := d.request("/config", http.MethodGet, nil, nil)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -18,10 +18,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "0",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Quark{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Quark{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ import (
|
|||
|
||||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||
|
@ -31,19 +30,14 @@ func (d *S3) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *S3) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *S3) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *S3) Init(ctx context.Context) error {
|
||||
if d.Region == "" {
|
||||
d.Region = "alist"
|
||||
}
|
||||
err = d.initSession()
|
||||
err := d.initSession()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -25,10 +25,8 @@ var config = driver.Config{
|
|||
CheckStatus: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &S3{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &S3{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -23,15 +23,10 @@ func (d *SFTP) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *SFTP) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *SFTP) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *SFTP) Init(ctx context.Context) error {
|
||||
return d.initClient()
|
||||
}
|
||||
|
||||
|
|
|
@ -21,10 +21,8 @@ var config = driver.Config{
|
|||
CheckStatus: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &SFTP{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &SFTP{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -26,16 +26,11 @@ func (d *SMB) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *SMB) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *SMB) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if strings.Index(d.Addition.Address, ":") < 0{
|
||||
func (d *SMB) Init(ctx context.Context) error {
|
||||
if strings.Index(d.Addition.Address, ":") < 0 {
|
||||
d.Addition.Address = d.Addition.Address + ":445"
|
||||
}
|
||||
return d.initFS()
|
||||
|
|
|
@ -22,7 +22,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &SMB{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/drivers/base"
|
||||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/go-resty/resty/v2"
|
||||
)
|
||||
|
||||
|
@ -22,16 +21,11 @@ func (d *Teambition) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Teambition) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Teambition) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = d.request("/api/v2/roles", http.MethodGet, nil, nil)
|
||||
func (d *Teambition) Init(ctx context.Context) error {
|
||||
_, err := d.request("/api/v2/roles", http.MethodGet, nil, nil)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -18,10 +18,8 @@ var config = driver.Config{
|
|||
Name: "Teambition",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Teambition{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Teambition{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ import (
|
|||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/errs"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
)
|
||||
|
||||
type Template struct {
|
||||
|
@ -19,18 +18,13 @@ func (d *Template) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *Template) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Template) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Template) Init(ctx context.Context) error {
|
||||
// TODO login / refresh token
|
||||
//op.MustSaveDriverStorage(d)
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Template) Drop(ctx context.Context) error {
|
||||
|
|
|
@ -25,7 +25,7 @@ var config = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Template{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -32,15 +32,10 @@ func (x *Thunder) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (x *Thunder) GetAddition() driver.Additional {
|
||||
return x.Addition
|
||||
return &x.Addition
|
||||
}
|
||||
|
||||
func (x *Thunder) Init(ctx context.Context, storage model.Storage) (err error) {
|
||||
x.Storage = storage
|
||||
if err = utils.Json.UnmarshalFromString(x.Storage.Addition, &x.Addition); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
func (x *Thunder) Init(ctx context.Context) (err error) {
|
||||
// 初始化所需参数
|
||||
if x.XunLeiCommon == nil {
|
||||
x.XunLeiCommon = &XunLeiCommon{
|
||||
|
@ -126,15 +121,10 @@ func (x *ThunderExpert) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (x *ThunderExpert) GetAddition() driver.Additional {
|
||||
return x.ExpertAddition
|
||||
return &x.ExpertAddition
|
||||
}
|
||||
|
||||
func (x *ThunderExpert) Init(ctx context.Context, storage model.Storage) (err error) {
|
||||
x.Storage = storage
|
||||
if err = utils.Json.UnmarshalFromString(x.Storage.Addition, &x.ExpertAddition); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
func (x *ThunderExpert) Init(ctx context.Context) (err error) {
|
||||
// 防止重复登录
|
||||
identity := x.GetIdentity()
|
||||
if identity != x.identity || !x.IsLogin() {
|
||||
|
|
|
@ -93,10 +93,10 @@ var configExpert = driver.Config{
|
|||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Thunder{}
|
||||
})
|
||||
op.RegisterDriver(configExpert, func() driver.Driver {
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &ThunderExpert{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -25,15 +25,10 @@ func (d *USS) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *USS) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *USS) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *USS) Init(ctx context.Context) error {
|
||||
d.client = upyun.NewUpYun(&upyun.UpYunConfig{
|
||||
Bucket: d.Bucket,
|
||||
Operator: d.OperatorName,
|
||||
|
|
|
@ -20,10 +20,8 @@ var config = driver.Config{
|
|||
LocalSort: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &USS{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &USS{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
|
||||
"github.com/alist-org/alist/v3/internal/driver"
|
||||
"github.com/alist-org/alist/v3/internal/model"
|
||||
"github.com/alist-org/alist/v3/pkg/utils"
|
||||
"github.com/alist-org/alist/v3/pkg/utils/random"
|
||||
)
|
||||
|
||||
|
@ -20,12 +19,7 @@ func (d *Virtual) Config() driver.Config {
|
|||
return config
|
||||
}
|
||||
|
||||
func (d *Virtual) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *Virtual) Init(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -34,7 +28,7 @@ func (d *Virtual) Drop(ctx context.Context) error {
|
|||
}
|
||||
|
||||
func (d *Virtual) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *Virtual) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
|
||||
|
|
|
@ -21,10 +21,8 @@ var config = driver.Config{
|
|||
//NoCache: true,
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &Virtual{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &Virtual{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -26,16 +26,11 @@ func (d *WebDav) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *WebDav) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *WebDav) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = d.setClient()
|
||||
func (d *WebDav) Init(ctx context.Context) error {
|
||||
err := d.setClient()
|
||||
if err == nil {
|
||||
d.cron = cron.NewCron(time.Hour * 12)
|
||||
d.cron.Do(func() {
|
||||
|
|
|
@ -20,10 +20,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &WebDav{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &WebDav{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -24,15 +24,10 @@ func (d *YandexDisk) Config() driver.Config {
|
|||
}
|
||||
|
||||
func (d *YandexDisk) GetAddition() driver.Additional {
|
||||
return d.Addition
|
||||
return &d.Addition
|
||||
}
|
||||
|
||||
func (d *YandexDisk) Init(ctx context.Context, storage model.Storage) error {
|
||||
d.Storage = storage
|
||||
err := utils.Json.UnmarshalFromString(d.Storage.Addition, &d.Addition)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func (d *YandexDisk) Init(ctx context.Context) error {
|
||||
return d.refreshToken()
|
||||
}
|
||||
|
||||
|
|
|
@ -19,10 +19,8 @@ var config = driver.Config{
|
|||
DefaultRoot: "/",
|
||||
}
|
||||
|
||||
func New() driver.Driver {
|
||||
return &YandexDisk{}
|
||||
}
|
||||
|
||||
func init() {
|
||||
op.RegisterDriver(config, New)
|
||||
op.RegisterDriver(func() driver.Driver {
|
||||
return &YandexDisk{}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -17,11 +17,11 @@ type Meta interface {
|
|||
Config() Config
|
||||
// GetStorage just get raw storage, no need to implement, because model.Storage have implemented
|
||||
GetStorage() *model.Storage
|
||||
// GetAddition Additional can't be modified externally, so needn't return pointer
|
||||
SetStorage(model.Storage)
|
||||
// GetAddition Additional is used for unmarshal of JSON, so need return pointer
|
||||
GetAddition() Additional
|
||||
// Init If already initialized, drop first
|
||||
// need to unmarshal string to addition first
|
||||
Init(ctx context.Context, storage model.Storage) error
|
||||
Init(ctx context.Context) error
|
||||
Drop(ctx context.Context) error
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,10 @@ func (s *Storage) GetStorage() *Storage {
|
|||
return s
|
||||
}
|
||||
|
||||
func (s *Storage) SetStorage(storage Storage) {
|
||||
*s = storage
|
||||
}
|
||||
|
||||
func (s *Storage) SetStatus(status string) {
|
||||
s.Status = status
|
||||
}
|
||||
|
|
|
@ -15,10 +15,12 @@ type New func() driver.Driver
|
|||
var driverNewMap = map[string]New{}
|
||||
var driverInfoMap = map[string]driver.Info{}
|
||||
|
||||
func RegisterDriver(config driver.Config, driver New) {
|
||||
func RegisterDriver(driver New) {
|
||||
// log.Infof("register driver: [%s]", config.Name)
|
||||
registerDriverItems(config, driver().GetAddition())
|
||||
driverNewMap[config.Name] = driver
|
||||
tempDriver := driver()
|
||||
tempConfig := tempDriver.Config()
|
||||
registerDriverItems(tempConfig, tempDriver.GetAddition())
|
||||
driverNewMap[tempConfig.Name] = driver
|
||||
}
|
||||
|
||||
func GetDriverNew(name string) (New, error) {
|
||||
|
@ -44,6 +46,9 @@ func GetDriverInfoMap() map[string]driver.Info {
|
|||
func registerDriverItems(config driver.Config, addition driver.Additional) {
|
||||
// log.Debugf("addition of %s: %+v", config.Name, addition)
|
||||
tAddition := reflect.TypeOf(addition)
|
||||
for tAddition.Kind() == reflect.Pointer {
|
||||
tAddition = tAddition.Elem()
|
||||
}
|
||||
mainItems := getMainItems(config)
|
||||
additionalItems := getAdditionalItems(tAddition, config.DefaultRoot)
|
||||
driverInfoMap[config.Name] = driver.Info{
|
||||
|
|
|
@ -2,7 +2,6 @@ package op
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -56,15 +55,9 @@ func CreateStorage(ctx context.Context, storage model.Storage) (uint, error) {
|
|||
return storage.ID, errors.WithMessage(err, "failed create storage in database")
|
||||
}
|
||||
// already has an id
|
||||
err = storageDriver.Init(ctx, storage)
|
||||
storagesMap.Store(storage.MountPath, storageDriver)
|
||||
err = initStorage(ctx, storage, storageDriver)
|
||||
if err != nil {
|
||||
storageDriver.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
return storage.ID, errors.Wrapf(err, "failed init storage but storage is already created")
|
||||
} else {
|
||||
storageDriver.GetStorage().SetStatus(WORK)
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
return storage.ID, errors.Wrap(err, "failed init storage but storage is already created")
|
||||
}
|
||||
log.Debugf("storage %+v is created", storageDriver)
|
||||
return storage.ID, nil
|
||||
|
@ -80,18 +73,31 @@ func LoadStorage(ctx context.Context, storage model.Storage) error {
|
|||
return errors.WithMessage(err, "failed get driver new")
|
||||
}
|
||||
storageDriver := driverNew()
|
||||
err = storageDriver.Init(ctx, storage)
|
||||
storagesMap.Store(storage.MountPath, storageDriver)
|
||||
if err != nil {
|
||||
storageDriver.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
return errors.Wrapf(err, "failed init storage")
|
||||
} else {
|
||||
storageDriver.GetStorage().SetStatus(WORK)
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
}
|
||||
|
||||
err = initStorage(ctx, storage, storageDriver)
|
||||
log.Debugf("storage %+v is created", storageDriver)
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
// initStorage initialize the driver and store to storagesMap
|
||||
func initStorage(ctx context.Context, storage model.Storage, storageDriver driver.Driver) (err error) {
|
||||
storageDriver.SetStorage(storage)
|
||||
driverStorage := storageDriver.GetStorage()
|
||||
|
||||
// Unmarshal Addition
|
||||
err = utils.Json.UnmarshalFromString(driverStorage.Addition, storageDriver.GetAddition())
|
||||
if err == nil {
|
||||
err = storageDriver.Init(ctx)
|
||||
}
|
||||
storagesMap.Store(driverStorage.MountPath, storageDriver)
|
||||
if err != nil {
|
||||
driverStorage.SetStatus(err.Error())
|
||||
err = errors.Wrap(err, "failed init storage")
|
||||
} else {
|
||||
driverStorage.SetStatus(WORK)
|
||||
}
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
return err
|
||||
}
|
||||
|
||||
func EnableStorage(ctx context.Context, id uint) error {
|
||||
|
@ -128,7 +134,7 @@ func DisableStorage(ctx context.Context, id uint) error {
|
|||
}
|
||||
// drop the storage in the driver
|
||||
if err := storageDriver.Drop(ctx); err != nil {
|
||||
return errors.Wrapf(err, "failed drop storage")
|
||||
return errors.Wrap(err, "failed drop storage")
|
||||
}
|
||||
// delete the storage in the memory
|
||||
storage.Disabled = true
|
||||
|
@ -172,17 +178,10 @@ func UpdateStorage(ctx context.Context, storage model.Storage) error {
|
|||
if err != nil {
|
||||
return errors.Wrapf(err, "failed drop storage")
|
||||
}
|
||||
err = storageDriver.Init(ctx, storage)
|
||||
storagesMap.Store(storage.MountPath, storageDriver)
|
||||
if err != nil {
|
||||
storageDriver.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
return errors.Wrapf(err, "failed init storage")
|
||||
} else {
|
||||
storageDriver.GetStorage().SetStatus(WORK)
|
||||
MustSaveDriverStorage(storageDriver)
|
||||
}
|
||||
return nil
|
||||
|
||||
err = initStorage(ctx, storage, storageDriver)
|
||||
log.Debugf("storage %+v is update", storageDriver)
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteStorageById(ctx context.Context, id uint) error {
|
||||
|
@ -220,11 +219,11 @@ func MustSaveDriverStorage(driver driver.Driver) {
|
|||
func saveDriverStorage(driver driver.Driver) error {
|
||||
storage := driver.GetStorage()
|
||||
addition := driver.GetAddition()
|
||||
bytes, err := utils.Json.Marshal(addition)
|
||||
strs, err := utils.Json.MarshalToString(addition)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error while marshal addition")
|
||||
}
|
||||
storage.Addition = string(bytes)
|
||||
storage.Addition = strs
|
||||
err = db.UpdateStorage(storage)
|
||||
if err != nil {
|
||||
return errors.WithMessage(err, "failed update storage in database")
|
||||
|
|
|
@ -64,7 +64,7 @@ func GetIgnorePaths() ([]string, error) {
|
|||
for _, storage := range storages {
|
||||
if utils.SliceContains(skipDrivers, storage.Config().Name) {
|
||||
if storage.Config().Name == "AList V3" {
|
||||
addition := storage.GetAddition().(alist_v3.Addition)
|
||||
addition := storage.GetAddition().(*alist_v3.Addition)
|
||||
allowIndexed, visited := v3Visited[addition.Address]
|
||||
if !visited {
|
||||
url := addition.Address + "/api/public/settings"
|
||||
|
|
Loading…
Reference in New Issue