From 36f07ee19479f1c03c1eee9e9905f6e14e4854de Mon Sep 17 00:00:00 2001 From: Xhofe Date: Sat, 25 Dec 2021 16:44:32 +0800 Subject: [PATCH] :sparkles: add no cors config --- drivers/alist/driver.go | 1 + drivers/base/driver.go | 12 ++++++++++++ drivers/lanzou/driver.go | 1 + model/account.go | 1 + server/controllers/setting.go | 7 +++++++ server/static.go | 2 +- 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/alist/driver.go b/drivers/alist/driver.go index 1d9c44af..ca9b8131 100644 --- a/drivers/alist/driver.go +++ b/drivers/alist/driver.go @@ -19,6 +19,7 @@ func (driver Alist) Config() base.DriverConfig { return base.DriverConfig{ Name: "Alist", OnlyProxy: false, + NoCors: true, } } diff --git a/drivers/base/driver.go b/drivers/base/driver.go index dcf847f7..2d977ccf 100644 --- a/drivers/base/driver.go +++ b/drivers/base/driver.go @@ -6,6 +6,7 @@ import ( "github.com/go-resty/resty/v2" log "github.com/sirupsen/logrus" "net/http" + "strings" ) type DriverConfig struct { @@ -14,6 +15,7 @@ type DriverConfig struct { NoLink bool // 必须本机返回的 ApiProxy bool // 使用API中转的 NeedSetLink bool // 需要设置链接的 + NoCors bool // 不可以跨域 } type Args struct { @@ -75,6 +77,16 @@ func GetDriver(name string) (driver Driver, ok bool) { return } +func GetNoCors() string { + res := make([]string, 0) + for k, v := range driversMap { + if v.Config().NoCors { + res = append(res, k) + } + } + return strings.Join(res, ",") +} + func GetDrivers() map[string][]Item { res := make(map[string][]Item, 0) for k, v := range driversMap { diff --git a/drivers/lanzou/driver.go b/drivers/lanzou/driver.go index a348cae7..1582f9a2 100644 --- a/drivers/lanzou/driver.go +++ b/drivers/lanzou/driver.go @@ -16,6 +16,7 @@ func (driver Lanzou) Config() base.DriverConfig { return base.DriverConfig{ Name: "Lanzou", NeedSetLink: true, + NoCors: true, } } diff --git a/model/account.go b/model/account.go index f4df5bb2..3050b65e 100644 --- a/model/account.go +++ b/model/account.go @@ -113,6 +113,7 @@ func GetAccountFiles() ([]File, error) { files = append(files, File{ Name: v.Name, Size: 0, + Driver: v.Type, Type: conf.FOLDER, UpdatedAt: v.UpdatedAt, }) diff --git a/server/controllers/setting.go b/server/controllers/setting.go index 59f79d22..d048ee59 100644 --- a/server/controllers/setting.go +++ b/server/controllers/setting.go @@ -1,6 +1,7 @@ package controllers import ( + "github.com/Xhofe/alist/drivers/base" "github.com/Xhofe/alist/model" "github.com/Xhofe/alist/server/common" "github.com/gin-gonic/gin" @@ -35,6 +36,12 @@ func GetSettingsPublic(c *gin.Context) { common.ErrorResp(c, err, 400) return } + *settings = append(*settings, model.SettingItem{ + Key: "no cors", + Value: base.GetNoCors(), + Description: "", + Type: "string", + }) common.SuccessResp(c, settings) } diff --git a/server/static.go b/server/static.go index c3d448a7..7dc09d0b 100644 --- a/server/static.go +++ b/server/static.go @@ -19,7 +19,7 @@ func InitIndex() { index, err = public.Public.Open("index.html") } if err != nil { - log.Fatalf(err.Error()) + //log.Fatalf(err.Error()) return } data, _ := ioutil.ReadAll(index)