mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-07 14:50:55 +03:00
add fs providers hook
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
@@ -16,10 +16,17 @@ package vfs
|
||||
|
||||
import (
|
||||
"os"
|
||||
"slices"
|
||||
|
||||
"github.com/sftpgo/sdk"
|
||||
|
||||
"github.com/drakkan/sftpgo/v2/internal/kms"
|
||||
"github.com/drakkan/sftpgo/v2/internal/util"
|
||||
)
|
||||
|
||||
var (
|
||||
disabledFilesystemProviders []sdk.FilesystemProvider
|
||||
loadDisabledProvidersFn func()
|
||||
)
|
||||
|
||||
// Filesystem defines filesystem details
|
||||
@@ -232,8 +239,7 @@ func (f *Filesystem) Validate(additionalData string) error {
|
||||
f.CryptConfig = CryptFsConfig{}
|
||||
f.SFTPConfig = SFTPFsConfig{}
|
||||
return nil
|
||||
default:
|
||||
f.Provider = sdk.LocalFilesystemProvider
|
||||
case sdk.LocalFilesystemProvider:
|
||||
f.S3Config = S3FsConfig{}
|
||||
f.GCSConfig = GCSFsConfig{}
|
||||
f.AzBlobConfig = AzBlobFsConfig{}
|
||||
@@ -241,6 +247,11 @@ func (f *Filesystem) Validate(additionalData string) error {
|
||||
f.SFTPConfig = SFTPFsConfig{}
|
||||
f.HTTPConfig = HTTPFsConfig{}
|
||||
return validateOSFsConfig(&f.OSConfig)
|
||||
default:
|
||||
return util.NewI18nError(
|
||||
util.NewValidationError("invalid filesystem provider"),
|
||||
util.I18nErrorFsValidation,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,3 +401,11 @@ func (f *Filesystem) GetACopy() Filesystem {
|
||||
}
|
||||
return fs
|
||||
}
|
||||
|
||||
// IsFsDisabled returns if a filesystem provider is disabled
|
||||
func IsFsDisabled(provider sdk.FilesystemProvider) bool {
|
||||
if loadDisabledProvidersFn != nil {
|
||||
loadDisabledProvidersFn()
|
||||
}
|
||||
return slices.Contains(disabledFilesystemProviders, provider)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user