in core/server/src/configs/validators.rs [218:265]
fn validate(&self) -> Result<(), ConfigError> {
if !self.enabled {
return Ok(());
}
match self.kind {
ArchiverKindType::Disk => {
if self.disk.is_none() {
return Err(ConfigError::InvalidConfiguration);
}
let disk = self.disk.as_ref().unwrap();
if disk.path.is_empty() {
return Err(ConfigError::InvalidConfiguration);
}
Ok(())
}
ArchiverKindType::S3 => {
if self.s3.is_none() {
return Err(ConfigError::InvalidConfiguration);
}
let s3 = self.s3.as_ref().unwrap();
if s3.key_id.is_empty() {
return Err(ConfigError::InvalidConfiguration);
}
if s3.key_secret.is_empty() {
return Err(ConfigError::InvalidConfiguration);
}
if s3.endpoint.is_none() && s3.region.is_none() {
return Err(ConfigError::InvalidConfiguration);
}
if s3.endpoint.as_deref().unwrap_or_default().is_empty()
&& s3.region.as_deref().unwrap_or_default().is_empty()
{
return Err(ConfigError::InvalidConfiguration);
}
if s3.bucket.is_empty() {
return Err(ConfigError::InvalidConfiguration);
}
Ok(())
}
}
}