Skip initing disabled storages (#21985)

If `Attachment` or `Packages` are disabled, we don't have to init the
storages for them.
This commit is contained in:
Jason Song
2022-11-30 21:39:02 +08:00
committed by GitHub
parent 7020c4afb7
commit 67881ae99a
3 changed files with 108 additions and 26 deletions

View File

@ -4,6 +4,10 @@
package storage
import (
"fmt"
"io"
"net/url"
"os"
"reflect"
"code.gitea.io/gitea/modules/json"
@ -61,3 +65,31 @@ func toConfig(exemplar, cfg interface{}) (interface{}, error) {
}
return newVal.Elem().Interface(), nil
}
var uninitializedStorage = discardStorage("uninitialized storage")
type discardStorage string
func (s discardStorage) Open(_ string) (Object, error) {
return nil, fmt.Errorf("%s", s)
}
func (s discardStorage) Save(_ string, _ io.Reader, _ int64) (int64, error) {
return 0, fmt.Errorf("%s", s)
}
func (s discardStorage) Stat(_ string) (os.FileInfo, error) {
return nil, fmt.Errorf("%s", s)
}
func (s discardStorage) Delete(_ string) error {
return fmt.Errorf("%s", s)
}
func (s discardStorage) URL(_, _ string) (*url.URL, error) {
return nil, fmt.Errorf("%s", s)
}
func (s discardStorage) IterateObjects(_ func(string, Object) error) error {
return fmt.Errorf("%s", s)
}