add space alias config to s3ng and ocis driver

This commit is contained in:
Michael Barz
2022-03-16 16:38:32 +01:00
parent 3a59c7ec4c
commit 0773b66325
6 changed files with 67 additions and 33 deletions
+21 -17
View File
@@ -89,12 +89,14 @@ func UserDrivers(cfg *config.Config) map[string]interface{} {
"userprovidersvc": cfg.Reva.Users.Endpoint,
},
"ocis": map[string]interface{}{
"root": cfg.Reva.UserStorage.OCIS.Root,
"user_layout": cfg.Reva.UserStorage.OCIS.UserLayout,
"share_folder": cfg.Reva.UserStorage.OCIS.ShareFolder,
"treetime_accounting": true,
"treesize_accounting": true,
"permissionssvc": cfg.Reva.Permissions.Endpoint,
"root": cfg.Reva.UserStorage.OCIS.Root,
"user_layout": cfg.Reva.UserStorage.OCIS.UserLayout,
"share_folder": cfg.Reva.UserStorage.OCIS.ShareFolder,
"personalspacealias_template": cfg.Reva.UserStorage.OCIS.PersonalSpaceAliasTemplate,
"generalspacealias_template": cfg.Reva.UserStorage.OCIS.GeneralSpaceAliasTemplate,
"treetime_accounting": true,
"treesize_accounting": true,
"permissionssvc": cfg.Reva.Permissions.Endpoint,
},
"s3": map[string]interface{}{
"enable_home": false,
@@ -106,17 +108,19 @@ func UserDrivers(cfg *config.Config) map[string]interface{} {
"prefix": cfg.Reva.UserStorage.S3.Root,
},
"s3ng": map[string]interface{}{
"root": cfg.Reva.UserStorage.S3NG.Root,
"user_layout": cfg.Reva.UserStorage.S3NG.UserLayout,
"share_folder": cfg.Reva.UserStorage.S3NG.ShareFolder,
"treetime_accounting": true,
"treesize_accounting": true,
"permissionssvc": cfg.Reva.Permissions.Endpoint,
"s3.region": cfg.Reva.UserStorage.S3NG.Region,
"s3.access_key": cfg.Reva.UserStorage.S3NG.AccessKey,
"s3.secret_key": cfg.Reva.UserStorage.S3NG.SecretKey,
"s3.endpoint": cfg.Reva.UserStorage.S3NG.Endpoint,
"s3.bucket": cfg.Reva.UserStorage.S3NG.Bucket,
"root": cfg.Reva.UserStorage.S3NG.Root,
"user_layout": cfg.Reva.UserStorage.S3NG.UserLayout,
"share_folder": cfg.Reva.UserStorage.S3NG.ShareFolder,
"personalspacealias_template": cfg.Reva.UserStorage.S3NG.PersonalSpaceAliasTemplate,
"generalspacealias_template": cfg.Reva.UserStorage.S3NG.GeneralSpaceAliasTemplate,
"treetime_accounting": true,
"treesize_accounting": true,
"permissionssvc": cfg.Reva.Permissions.Endpoint,
"s3.region": cfg.Reva.UserStorage.S3NG.Region,
"s3.access_key": cfg.Reva.UserStorage.S3NG.AccessKey,
"s3.secret_key": cfg.Reva.UserStorage.S3NG.SecretKey,
"s3.endpoint": cfg.Reva.UserStorage.S3NG.Endpoint,
"s3.bucket": cfg.Reva.UserStorage.S3NG.Bucket,
},
}
}
+22
View File
@@ -241,6 +241,12 @@ type DriverCommon struct {
UserLayout string `ocisConfig:"user_layout"`
// EnableHome enables the creation of home directories.
EnableHome bool `ocisConfig:"enable_home"`
// PersonalSpaceAliasTemplate contains the template used to construct
// the personal space alias, eg: `"{{.SpaceType}}/{{.User.Username | lower}}"`
PersonalSpaceAliasTemplate string `ocisConfig:"personalspacealias_template"`
// GeneralSpaceAliasTemplate contains the template used to construct
// the general space alias, eg: `{{.SpaceType}}/{{.SpaceName | replace " " "-" | lower}}`
GeneralSpaceAliasTemplate string `ocisConfig:"generalspacealias_template"`
}
// DriverEOS defines the available EOS driver configuration.
@@ -1528,6 +1534,14 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_USERS_DRIVER_OCIS_SHARE_FOLDER"},
Destination: &cfg.Reva.UserStorage.OCIS.ShareFolder,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_OCIS_PERSONAL_SPACE_ALIAS_TEMPLATE"},
Destination: &cfg.Reva.UserStorage.OCIS.PersonalSpaceAliasTemplate,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_OCIS_GENERAL_SPACE_ALIAS_TEMPLATE"},
Destination: &cfg.Reva.UserStorage.OCIS.GeneralSpaceAliasTemplate,
},
// driver owncloud sql
{
EnvVars: []string{"STORAGE_USERS_DRIVER_OWNCLOUDSQL_DATADIR"},
@@ -1601,6 +1615,14 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_SHARE_FOLDER"},
Destination: &cfg.Reva.UserStorage.S3NG.ShareFolder,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_PERSONAL_SPACE_ALIAS_TEMPLATE"},
Destination: &cfg.Reva.UserStorage.S3NG.PersonalSpaceAliasTemplate,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_GENERAL_SPACE_ALIAS_TEMPLATE"},
Destination: &cfg.Reva.UserStorage.S3NG.GeneralSpaceAliasTemplate,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_REGION"},
Destination: &cfg.Reva.UserStorage.S3NG.Region,
+18 -12
View File
@@ -9,11 +9,13 @@ import (
)
const (
defaultPublicURL = "https://localhost:9200"
defaultShareFolder = "/Shares"
defaultStorageNamespace = "/users/{{.Id.OpaqueId}}"
defaultGatewayAddr = "127.0.0.1:9142"
defaultUserLayout = "{{.Id.OpaqueId}}"
defaultPublicURL = "https://localhost:9200"
defaultShareFolder = "/Shares"
defaultStorageNamespace = "/users/{{.Id.OpaqueId}}"
defaultGatewayAddr = "127.0.0.1:9142"
defaultUserLayout = "{{.Id.OpaqueId}}"
defaultPersonalSpaceAliasTemplate = "{{.SpaceType}}/{{.User.Username | lower}}"
defaultGeneralSpaceAliasTemplate = "{{.SpaceType}}/{{.SpaceName | replace \" \" \"-\" | lower}}"
)
func FullDefaultConfig() *config.Config {
@@ -145,10 +147,12 @@ func DefaultConfig() *config.Config {
},
S3NG: config.DriverS3NG{
DriverCommon: config.DriverCommon{
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
ShareFolder: defaultShareFolder,
UserLayout: defaultUserLayout,
EnableHome: false,
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
ShareFolder: defaultShareFolder,
UserLayout: defaultUserLayout,
PersonalSpaceAliasTemplate: defaultPersonalSpaceAliasTemplate,
GeneralSpaceAliasTemplate: defaultGeneralSpaceAliasTemplate,
EnableHome: false,
},
Region: "default",
AccessKey: "",
@@ -158,9 +162,11 @@ func DefaultConfig() *config.Config {
},
OCIS: config.DriverOCIS{
DriverCommon: config.DriverCommon{
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
ShareFolder: defaultShareFolder,
UserLayout: defaultUserLayout,
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
ShareFolder: defaultShareFolder,
UserLayout: defaultUserLayout,
PersonalSpaceAliasTemplate: defaultPersonalSpaceAliasTemplate,
GeneralSpaceAliasTemplate: defaultGeneralSpaceAliasTemplate,
},
},
},