mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-22 19:19:18 -05:00
configure users and metadata storage separately
This commit is contained in:
@@ -1,128 +0,0 @@
|
||||
package command
|
||||
|
||||
import (
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
)
|
||||
|
||||
func drivers(cfg *config.Config) map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"eos": map[string]interface{}{
|
||||
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.Storages.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.Storages.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
||||
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
||||
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.Storages.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||
},
|
||||
"eoshome": map[string]interface{}{
|
||||
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.Storages.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.Storages.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
||||
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.Storages.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.Storages.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||
},
|
||||
"eosgrpc": map[string]interface{}{
|
||||
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||
"master_grpc_uri": cfg.Reva.Storages.EOS.GrpcURI,
|
||||
"slave_url": cfg.Reva.Storages.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.Storages.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
||||
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.Storages.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.Storages.EOS.UseKeytab,
|
||||
"enable_home": cfg.Reva.Storages.EOS.EnableHome,
|
||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||
},
|
||||
"local": map[string]interface{}{
|
||||
"root": cfg.Reva.Storages.Local.Root,
|
||||
"share_folder": cfg.Reva.Storages.Local.ShareFolder,
|
||||
},
|
||||
"localhome": map[string]interface{}{
|
||||
"root": cfg.Reva.Storages.Local.Root,
|
||||
"share_folder": cfg.Reva.Storages.Local.ShareFolder,
|
||||
"user_layout": cfg.Reva.Storages.Local.UserLayout,
|
||||
},
|
||||
"owncloud": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.Storages.OwnCloud.Root,
|
||||
"upload_info_dir": cfg.Reva.Storages.OwnCloud.UploadInfoDir,
|
||||
"sharedirectory": cfg.Reva.Storages.OwnCloud.ShareFolder,
|
||||
"user_layout": cfg.Reva.Storages.OwnCloud.UserLayout,
|
||||
"redis": cfg.Reva.Storages.OwnCloud.Redis,
|
||||
"enable_home": cfg.Reva.Storages.OwnCloud.EnableHome,
|
||||
"scan": cfg.Reva.Storages.OwnCloud.Scan,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"owncloudsql": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.Storages.OwnCloudSQL.Root,
|
||||
"upload_info_dir": cfg.Reva.Storages.OwnCloudSQL.UploadInfoDir,
|
||||
"sharedirectory": cfg.Reva.Storages.OwnCloudSQL.ShareFolder,
|
||||
"user_layout": cfg.Reva.Storages.OwnCloudSQL.UserLayout,
|
||||
"enable_home": cfg.Reva.Storages.OwnCloudSQL.EnableHome,
|
||||
"dbusername": cfg.Reva.Storages.OwnCloudSQL.DBUsername,
|
||||
"dbpassword": cfg.Reva.Storages.OwnCloudSQL.DBPassword,
|
||||
"dbhost": cfg.Reva.Storages.OwnCloudSQL.DBHost,
|
||||
"dbport": cfg.Reva.Storages.OwnCloudSQL.DBPort,
|
||||
"dbname": cfg.Reva.Storages.OwnCloudSQL.DBName,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"ocis": map[string]interface{}{
|
||||
"root": cfg.Reva.Storages.Common.Root,
|
||||
"enable_home": cfg.Reva.Storages.Common.EnableHome,
|
||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
||||
"treetime_accounting": true,
|
||||
"treesize_accounting": true,
|
||||
"owner": cfg.Reva.Storages.OCIS.ServiceUserUUID, // the accounts service system account uuid
|
||||
},
|
||||
"s3": map[string]interface{}{
|
||||
"region": cfg.Reva.Storages.S3.Region,
|
||||
"access_key": cfg.Reva.Storages.S3.AccessKey,
|
||||
"secret_key": cfg.Reva.Storages.S3.SecretKey,
|
||||
"endpoint": cfg.Reva.Storages.S3.Endpoint,
|
||||
"bucket": cfg.Reva.Storages.S3.Bucket,
|
||||
"prefix": cfg.Reva.Storages.S3.Root,
|
||||
},
|
||||
"s3ng": map[string]interface{}{
|
||||
"root": cfg.Reva.Storages.Common.Root,
|
||||
"enable_home": cfg.Reva.Storages.Common.EnableHome,
|
||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
||||
"s3.region": cfg.Reva.Storages.S3NG.Region,
|
||||
"s3.access_key": cfg.Reva.Storages.S3NG.AccessKey,
|
||||
"s3.secret_key": cfg.Reva.Storages.S3NG.SecretKey,
|
||||
"s3.endpoint": cfg.Reva.Storages.S3NG.Endpoint,
|
||||
"s3.bucket": cfg.Reva.Storages.S3NG.Bucket,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -204,7 +204,7 @@ func frontendConfigFromStruct(c *cli.Context, cfg *config.Config, filesCfg map[s
|
||||
"db_host": cfg.Reva.Sharing.UserSQLHost,
|
||||
"db_port": cfg.Reva.Sharing.UserSQLPort,
|
||||
"db_name": cfg.Reva.Sharing.UserSQLName,
|
||||
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"gatewaysvc": cfg.Reva.Gateway.Endpoint,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
package storagedrivers
|
||||
|
||||
import (
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
)
|
||||
|
||||
func HomeDrivers(cfg *config.Config) map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"eos": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.UserStorage.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eoshome": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.UserStorage.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.UserStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eosgrpc": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"master_grpc_uri": cfg.Reva.UserStorage.EOS.GrpcURI,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.UserStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"enable_home": cfg.Reva.UserStorage.EOS.EnableHome,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"local": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.Local.Root,
|
||||
"share_folder": cfg.Reva.UserStorage.Local.ShareFolder,
|
||||
},
|
||||
"localhome": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.Local.Root,
|
||||
"share_folder": cfg.Reva.UserStorage.Local.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.Local.UserLayout,
|
||||
},
|
||||
"owncloud": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.UserStorage.OwnCloud.Root,
|
||||
"upload_info_dir": cfg.Reva.UserStorage.OwnCloud.UploadInfoDir,
|
||||
"share_folder": cfg.Reva.UserStorage.OwnCloud.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.OwnCloud.UserLayout,
|
||||
"redis": cfg.Reva.UserStorage.OwnCloud.Redis,
|
||||
"enable_home": cfg.Reva.UserStorage.OwnCloud.EnableHome,
|
||||
"scan": cfg.Reva.UserStorage.OwnCloud.Scan,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"owncloudsql": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.UserStorage.OwnCloudSQL.Root,
|
||||
"upload_info_dir": cfg.Reva.UserStorage.OwnCloudSQL.UploadInfoDir,
|
||||
"share_folder": cfg.Reva.UserStorage.OwnCloudSQL.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.OwnCloudSQL.UserLayout,
|
||||
"enable_home": cfg.Reva.UserStorage.OwnCloudSQL.EnableHome,
|
||||
"dbusername": cfg.Reva.UserStorage.OwnCloudSQL.DBUsername,
|
||||
"dbpassword": cfg.Reva.UserStorage.OwnCloudSQL.DBPassword,
|
||||
"dbhost": cfg.Reva.UserStorage.OwnCloudSQL.DBHost,
|
||||
"dbport": cfg.Reva.UserStorage.OwnCloudSQL.DBPort,
|
||||
"dbname": cfg.Reva.UserStorage.OwnCloudSQL.DBName,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"ocis": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.OCIS.Root,
|
||||
"enable_home": cfg.Reva.UserStorage.OCIS.EnableHome,
|
||||
"user_layout": cfg.Reva.UserStorage.OCIS.UserLayout,
|
||||
"share_folder": cfg.Reva.UserStorage.OCIS.ShareFolder,
|
||||
"treetime_accounting": true,
|
||||
"treesize_accounting": true,
|
||||
"owner": cfg.Reva.UserStorage.OCIS.ServiceUserUUID, // the accounts service system account uuid
|
||||
},
|
||||
"s3": map[string]interface{}{
|
||||
"region": cfg.Reva.UserStorage.S3.Region,
|
||||
"access_key": cfg.Reva.UserStorage.S3.AccessKey,
|
||||
"secret_key": cfg.Reva.UserStorage.S3.SecretKey,
|
||||
"endpoint": cfg.Reva.UserStorage.S3.Endpoint,
|
||||
"bucket": cfg.Reva.UserStorage.S3.Bucket,
|
||||
"prefix": cfg.Reva.UserStorage.S3.Root,
|
||||
},
|
||||
"s3ng": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.S3NG.Root,
|
||||
"enable_home": cfg.Reva.UserStorage.S3NG.EnableHome,
|
||||
"user_layout": cfg.Reva.UserStorage.S3NG.UserLayout,
|
||||
"share_folder": cfg.Reva.UserStorage.S3NG.ShareFolder,
|
||||
"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,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
package storagedrivers
|
||||
|
||||
import (
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
)
|
||||
|
||||
func MetadataDrivers(cfg *config.Config) map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"eos": map[string]interface{}{
|
||||
"namespace": cfg.Reva.MetadataStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.MetadataStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.MetadataStorage.EOS.UploadsNamespace,
|
||||
"eos_binary": cfg.Reva.MetadataStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.MetadataStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.MetadataStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.MetadataStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.MetadataStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.MetadataStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.MetadataStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.MetadataStorage.EOS.SingleUsername,
|
||||
"enable_logging": cfg.Reva.MetadataStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.MetadataStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.MetadataStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.MetadataStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.MetadataStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eoshome": map[string]interface{}{
|
||||
"namespace": cfg.Reva.MetadataStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.MetadataStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.MetadataStorage.EOS.UploadsNamespace,
|
||||
"eos_binary": cfg.Reva.MetadataStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.MetadataStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.MetadataStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.MetadataStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.MetadataStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.MetadataStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.MetadataStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.MetadataStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.MetadataStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.MetadataStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.MetadataStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.MetadataStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.MetadataStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.MetadataStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eosgrpc": map[string]interface{}{
|
||||
"namespace": cfg.Reva.MetadataStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.MetadataStorage.EOS.ShadowNamespace,
|
||||
"eos_binary": cfg.Reva.MetadataStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.MetadataStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.MetadataStorage.EOS.MasterURL,
|
||||
"master_grpc_uri": cfg.Reva.MetadataStorage.EOS.GrpcURI,
|
||||
"slave_url": cfg.Reva.MetadataStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.MetadataStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.MetadataStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.MetadataStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.MetadataStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.MetadataStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.MetadataStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.MetadataStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.MetadataStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.MetadataStorage.EOS.UseKeytab,
|
||||
"enable_home": false,
|
||||
"gatewaysvc": cfg.Reva.MetadataStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"local": map[string]interface{}{
|
||||
"root": cfg.Reva.MetadataStorage.Local.Root,
|
||||
},
|
||||
"localhome": map[string]interface{}{
|
||||
"root": cfg.Reva.MetadataStorage.Local.Root,
|
||||
"user_layout": cfg.Reva.MetadataStorage.Local.UserLayout,
|
||||
},
|
||||
"owncloud": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.MetadataStorage.OwnCloud.Root,
|
||||
"upload_info_dir": cfg.Reva.MetadataStorage.OwnCloud.UploadInfoDir,
|
||||
"user_layout": cfg.Reva.MetadataStorage.OwnCloud.UserLayout,
|
||||
"redis": cfg.Reva.MetadataStorage.OwnCloud.Redis,
|
||||
"enable_home": false,
|
||||
"scan": cfg.Reva.MetadataStorage.OwnCloud.Scan,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"owncloudsql": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.MetadataStorage.OwnCloudSQL.Root,
|
||||
"upload_info_dir": cfg.Reva.MetadataStorage.OwnCloudSQL.UploadInfoDir,
|
||||
"user_layout": cfg.Reva.MetadataStorage.OwnCloudSQL.UserLayout,
|
||||
"enable_home": false,
|
||||
"dbusername": cfg.Reva.MetadataStorage.OwnCloudSQL.DBUsername,
|
||||
"dbpassword": cfg.Reva.MetadataStorage.OwnCloudSQL.DBPassword,
|
||||
"dbhost": cfg.Reva.MetadataStorage.OwnCloudSQL.DBHost,
|
||||
"dbport": cfg.Reva.MetadataStorage.OwnCloudSQL.DBPort,
|
||||
"dbname": cfg.Reva.MetadataStorage.OwnCloudSQL.DBName,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"ocis": map[string]interface{}{
|
||||
"root": cfg.Reva.MetadataStorage.OCIS.Root,
|
||||
"enable_home": false,
|
||||
"user_layout": cfg.Reva.MetadataStorage.OCIS.UserLayout,
|
||||
"treetime_accounting": true,
|
||||
"treesize_accounting": true,
|
||||
"owner": cfg.Reva.MetadataStorage.OCIS.ServiceUserUUID, // the accounts service system account uuid
|
||||
},
|
||||
"s3": map[string]interface{}{
|
||||
"region": cfg.Reva.MetadataStorage.S3.Region,
|
||||
"access_key": cfg.Reva.MetadataStorage.S3.AccessKey,
|
||||
"secret_key": cfg.Reva.MetadataStorage.S3.SecretKey,
|
||||
"endpoint": cfg.Reva.MetadataStorage.S3.Endpoint,
|
||||
"bucket": cfg.Reva.MetadataStorage.S3.Bucket,
|
||||
"prefix": cfg.Reva.MetadataStorage.S3.Root,
|
||||
},
|
||||
"s3ng": map[string]interface{}{
|
||||
"root": cfg.Reva.MetadataStorage.S3NG.Root,
|
||||
"enable_home": false,
|
||||
"user_layout": cfg.Reva.MetadataStorage.S3NG.UserLayout,
|
||||
"s3.region": cfg.Reva.MetadataStorage.S3NG.Region,
|
||||
"s3.access_key": cfg.Reva.MetadataStorage.S3NG.AccessKey,
|
||||
"s3.secret_key": cfg.Reva.MetadataStorage.S3NG.SecretKey,
|
||||
"s3.endpoint": cfg.Reva.MetadataStorage.S3NG.Endpoint,
|
||||
"s3.bucket": cfg.Reva.MetadataStorage.S3NG.Bucket,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
package storagedrivers
|
||||
|
||||
import (
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
)
|
||||
|
||||
func UserDrivers(cfg *config.Config) map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"eos": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.UserStorage.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eoshome": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"uploads_namespace": cfg.Reva.UserStorage.EOS.UploadsNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.UserStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"eosgrpc": map[string]interface{}{
|
||||
"namespace": cfg.Reva.UserStorage.EOS.Root,
|
||||
"shadow_namespace": cfg.Reva.UserStorage.EOS.ShadowNamespace,
|
||||
"share_folder": cfg.Reva.UserStorage.EOS.ShareFolder,
|
||||
"eos_binary": cfg.Reva.UserStorage.EOS.EosBinary,
|
||||
"xrdcopy_binary": cfg.Reva.UserStorage.EOS.XrdcopyBinary,
|
||||
"master_url": cfg.Reva.UserStorage.EOS.MasterURL,
|
||||
"master_grpc_uri": cfg.Reva.UserStorage.EOS.GrpcURI,
|
||||
"slave_url": cfg.Reva.UserStorage.EOS.SlaveURL,
|
||||
"cache_directory": cfg.Reva.UserStorage.EOS.CacheDirectory,
|
||||
"sec_protocol": cfg.Reva.UserStorage.EOS.SecProtocol,
|
||||
"keytab": cfg.Reva.UserStorage.EOS.Keytab,
|
||||
"single_username": cfg.Reva.UserStorage.EOS.SingleUsername,
|
||||
"user_layout": cfg.Reva.UserStorage.EOS.UserLayout,
|
||||
"enable_logging": cfg.Reva.UserStorage.EOS.EnableLogging,
|
||||
"show_hidden_sys_files": cfg.Reva.UserStorage.EOS.ShowHiddenSysFiles,
|
||||
"force_single_user_mode": cfg.Reva.UserStorage.EOS.ForceSingleUserMode,
|
||||
"use_keytab": cfg.Reva.UserStorage.EOS.UseKeytab,
|
||||
"enable_home": false,
|
||||
"gatewaysvc": cfg.Reva.UserStorage.EOS.GatewaySVC,
|
||||
},
|
||||
"local": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.Local.Root,
|
||||
"share_folder": cfg.Reva.UserStorage.Local.ShareFolder,
|
||||
},
|
||||
"localhome": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.Local.Root,
|
||||
"share_folder": cfg.Reva.UserStorage.Local.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.Local.UserLayout,
|
||||
},
|
||||
"owncloud": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.UserStorage.OwnCloud.Root,
|
||||
"upload_info_dir": cfg.Reva.UserStorage.OwnCloud.UploadInfoDir,
|
||||
"share_folder": cfg.Reva.UserStorage.OwnCloud.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.OwnCloud.UserLayout,
|
||||
"redis": cfg.Reva.UserStorage.OwnCloud.Redis,
|
||||
"enable_home": false,
|
||||
"scan": cfg.Reva.UserStorage.OwnCloud.Scan,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"owncloudsql": map[string]interface{}{
|
||||
"datadirectory": cfg.Reva.UserStorage.OwnCloudSQL.Root,
|
||||
"upload_info_dir": cfg.Reva.UserStorage.OwnCloudSQL.UploadInfoDir,
|
||||
"share_folder": cfg.Reva.UserStorage.OwnCloudSQL.ShareFolder,
|
||||
"user_layout": cfg.Reva.UserStorage.OwnCloudSQL.UserLayout,
|
||||
"enable_home": false,
|
||||
"dbusername": cfg.Reva.UserStorage.OwnCloudSQL.DBUsername,
|
||||
"dbpassword": cfg.Reva.UserStorage.OwnCloudSQL.DBPassword,
|
||||
"dbhost": cfg.Reva.UserStorage.OwnCloudSQL.DBHost,
|
||||
"dbport": cfg.Reva.UserStorage.OwnCloudSQL.DBPort,
|
||||
"dbname": cfg.Reva.UserStorage.OwnCloudSQL.DBName,
|
||||
"userprovidersvc": cfg.Reva.Users.Endpoint,
|
||||
},
|
||||
"ocis": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.OCIS.Root,
|
||||
"enable_home": false,
|
||||
"user_layout": cfg.Reva.UserStorage.OCIS.UserLayout,
|
||||
"share_folder": cfg.Reva.UserStorage.OCIS.ShareFolder,
|
||||
"treetime_accounting": true,
|
||||
"treesize_accounting": true,
|
||||
"owner": cfg.Reva.UserStorage.OCIS.ServiceUserUUID, // the accounts service system account uuid
|
||||
},
|
||||
"s3": map[string]interface{}{
|
||||
"enable_home": false,
|
||||
"region": cfg.Reva.UserStorage.S3.Region,
|
||||
"access_key": cfg.Reva.UserStorage.S3.AccessKey,
|
||||
"secret_key": cfg.Reva.UserStorage.S3.SecretKey,
|
||||
"endpoint": cfg.Reva.UserStorage.S3.Endpoint,
|
||||
"bucket": cfg.Reva.UserStorage.S3.Bucket,
|
||||
"prefix": cfg.Reva.UserStorage.S3.Root,
|
||||
},
|
||||
"s3ng": map[string]interface{}{
|
||||
"root": cfg.Reva.UserStorage.S3NG.Root,
|
||||
"enable_home": false,
|
||||
"user_layout": cfg.Reva.UserStorage.S3NG.UserLayout,
|
||||
"share_folder": cfg.Reva.UserStorage.S3NG.ShareFolder,
|
||||
"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,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/gofrs/uuid"
|
||||
"github.com/oklog/run"
|
||||
ociscfg "github.com/owncloud/ocis/ocis-pkg/config"
|
||||
"github.com/owncloud/ocis/storage/pkg/command/storagedrivers"
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
"github.com/owncloud/ocis/storage/pkg/flagset"
|
||||
"github.com/owncloud/ocis/storage/pkg/server/debug"
|
||||
@@ -43,16 +44,6 @@ func StorageHome(cfg *config.Config) *cli.Command {
|
||||
uuid := uuid.Must(uuid.NewV4())
|
||||
pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid")
|
||||
|
||||
// override driver enable home option with home config
|
||||
if cfg.Reva.Storages.Home.EnableHome {
|
||||
cfg.Reva.Storages.Common.EnableHome = true
|
||||
cfg.Reva.Storages.EOS.EnableHome = true
|
||||
cfg.Reva.Storages.Local.EnableHome = true
|
||||
cfg.Reva.Storages.OwnCloud.EnableHome = true
|
||||
cfg.Reva.Storages.OwnCloudSQL.EnableHome = true
|
||||
cfg.Reva.Storages.S3.EnableHome = true
|
||||
cfg.Reva.Storages.S3NG.EnableHome = true
|
||||
}
|
||||
rcfg := storageHomeConfigFromStruct(c, cfg)
|
||||
|
||||
gr.Add(func() error {
|
||||
@@ -117,7 +108,7 @@ func storageHomeConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]
|
||||
"services": map[string]interface{}{
|
||||
"storageprovider": map[string]interface{}{
|
||||
"driver": cfg.Reva.StorageHome.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.HomeDrivers(cfg),
|
||||
"mount_path": cfg.Reva.StorageHome.MountPath,
|
||||
"mount_id": cfg.Reva.StorageHome.MountID,
|
||||
"expose_data_server": cfg.Reva.StorageHome.ExposeDataServer,
|
||||
@@ -134,7 +125,7 @@ func storageHomeConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]
|
||||
"dataprovider": map[string]interface{}{
|
||||
"prefix": cfg.Reva.StorageHome.HTTPPrefix,
|
||||
"driver": cfg.Reva.StorageHome.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.HomeDrivers(cfg),
|
||||
"timeout": 86400,
|
||||
"insecure": true,
|
||||
"disable_tus": false,
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/oklog/run"
|
||||
ociscfg "github.com/owncloud/ocis/ocis-pkg/config"
|
||||
"github.com/owncloud/ocis/ocis-pkg/version"
|
||||
"github.com/owncloud/ocis/storage/pkg/command/storagedrivers"
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
"github.com/owncloud/ocis/storage/pkg/flagset"
|
||||
"github.com/owncloud/ocis/storage/pkg/server/debug"
|
||||
@@ -32,17 +33,6 @@ func StorageMetadata(cfg *config.Config) *cli.Command {
|
||||
// TODO(refs) at this point it might make sense delegate log flags to each individual storage command.
|
||||
Flags: append(flagset.StorageMetadata(cfg), flagset.RootWithConfig(cfg)...),
|
||||
Category: "Extensions",
|
||||
Before: func(c *cli.Context) error {
|
||||
storageRoot := c.String("storage-root")
|
||||
|
||||
cfg.Reva.Storages.OwnCloud.Root = storageRoot
|
||||
cfg.Reva.Storages.EOS.Root = storageRoot
|
||||
cfg.Reva.Storages.Local.Root = storageRoot
|
||||
cfg.Reva.Storages.S3.Root = storageRoot
|
||||
cfg.Reva.Storages.Home.Root = storageRoot
|
||||
|
||||
return nil
|
||||
},
|
||||
Action: func(c *cli.Context) error {
|
||||
logger := NewLogger(cfg)
|
||||
tracing.Configure(cfg, logger)
|
||||
@@ -58,23 +48,6 @@ func StorageMetadata(cfg *config.Config) *cli.Command {
|
||||
defer cancel()
|
||||
|
||||
pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
|
||||
|
||||
// Disable home because the metadata is stored independently
|
||||
// of the user. This also means that a valid-token without any user-id
|
||||
// is allowed to write to the metadata-storage.
|
||||
cfg.Reva.Storages.Common.EnableHome = false
|
||||
cfg.Reva.Storages.EOS.EnableHome = false
|
||||
cfg.Reva.Storages.Local.EnableHome = false
|
||||
cfg.Reva.Storages.OwnCloud.EnableHome = false
|
||||
cfg.Reva.Storages.S3.EnableHome = false
|
||||
|
||||
// We need this hack because the metadata storage can define STORAGE_METADATA_ROOT which has the same destination as
|
||||
// STORAGE_DRIVER_OCIS_ROOT. When both variables are set one storage will always be out of sync. Ensure the
|
||||
// metadata storage root is never overridden. This is the kind of stateful code that make you want to cry blood.
|
||||
if os.Getenv("STORAGE_METADATA_ROOT") != "" && os.Getenv("STORAGE_DRIVER_OCIS_ROOT") != "" {
|
||||
cfg.Reva.Storages.Common.Root = os.Getenv("STORAGE_METADATA_ROOT")
|
||||
}
|
||||
|
||||
rcfg := storageMetadataFromStruct(c, cfg)
|
||||
|
||||
gr.Add(func() error {
|
||||
@@ -160,7 +133,7 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in
|
||||
"storageprovider": map[string]interface{}{
|
||||
"mount_path": "/meta",
|
||||
"driver": cfg.Reva.StorageMetadata.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.MetadataDrivers(cfg),
|
||||
"data_server_url": cfg.Reva.StorageMetadata.DataServerURL,
|
||||
"tmp_folder": cfg.Reva.StorageMetadata.TempFolder,
|
||||
},
|
||||
@@ -174,7 +147,7 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in
|
||||
"dataprovider": map[string]interface{}{
|
||||
"prefix": "data",
|
||||
"driver": cfg.Reva.StorageMetadata.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.MetadataDrivers(cfg),
|
||||
"timeout": 86400,
|
||||
"insecure": true,
|
||||
"disable_tus": true,
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/oklog/run"
|
||||
ociscfg "github.com/owncloud/ocis/ocis-pkg/config"
|
||||
"github.com/owncloud/ocis/ocis-pkg/sync"
|
||||
"github.com/owncloud/ocis/storage/pkg/command/storagedrivers"
|
||||
"github.com/owncloud/ocis/storage/pkg/config"
|
||||
"github.com/owncloud/ocis/storage/pkg/flagset"
|
||||
"github.com/owncloud/ocis/storage/pkg/server/debug"
|
||||
@@ -43,16 +44,6 @@ func StorageUsers(cfg *config.Config) *cli.Command {
|
||||
uuid := uuid.Must(uuid.NewV4())
|
||||
pidFile := path.Join(os.TempDir(), "revad-"+c.Command.Name+"-"+uuid.String()+".pid")
|
||||
|
||||
// override driver enable home option with home config
|
||||
if cfg.Reva.Storages.Home.EnableHome {
|
||||
cfg.Reva.Storages.Common.EnableHome = true
|
||||
cfg.Reva.Storages.EOS.EnableHome = true
|
||||
cfg.Reva.Storages.Local.EnableHome = true
|
||||
cfg.Reva.Storages.OwnCloud.EnableHome = true
|
||||
cfg.Reva.Storages.OwnCloudSQL.EnableHome = true
|
||||
cfg.Reva.Storages.S3.EnableHome = true
|
||||
cfg.Reva.Storages.S3NG.EnableHome = true
|
||||
}
|
||||
rcfg := storageUsersConfigFromStruct(c, cfg)
|
||||
|
||||
gr.Add(func() error {
|
||||
@@ -117,7 +108,7 @@ func storageUsersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string
|
||||
"services": map[string]interface{}{
|
||||
"storageprovider": map[string]interface{}{
|
||||
"driver": cfg.Reva.StorageUsers.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.UserDrivers(cfg),
|
||||
"mount_path": cfg.Reva.StorageUsers.MountPath,
|
||||
"mount_id": cfg.Reva.StorageUsers.MountID,
|
||||
"expose_data_server": cfg.Reva.StorageUsers.ExposeDataServer,
|
||||
@@ -134,7 +125,7 @@ func storageUsersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string
|
||||
"dataprovider": map[string]interface{}{
|
||||
"prefix": cfg.Reva.StorageUsers.HTTPPrefix,
|
||||
"driver": cfg.Reva.StorageUsers.Driver,
|
||||
"drivers": drivers(cfg),
|
||||
"drivers": storagedrivers.UserDrivers(cfg),
|
||||
"timeout": 86400,
|
||||
"insecure": true,
|
||||
"disable_tus": false,
|
||||
|
||||
Reference in New Issue
Block a user