add config option for pruning missing media
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
9654dd9218
commit
73af171830
3 changed files with 12 additions and 1 deletions
|
@ -398,6 +398,14 @@ allow_profile_lookup_federation_requests = true
|
||||||
# Disabled by default.
|
# Disabled by default.
|
||||||
#media_compat_file_link = false
|
#media_compat_file_link = false
|
||||||
|
|
||||||
|
# Prunes missing media from the database as part of the media startup checks. This means if you
|
||||||
|
# delete files from the media directory the corresponding entries will be removed from the
|
||||||
|
# database. This is disabled by default because if the media directory is accidentally moved or
|
||||||
|
# inaccessible the metadata entries in the database will be lost with sadness.
|
||||||
|
#
|
||||||
|
# Disabled by default.
|
||||||
|
#prune_missing_media = false
|
||||||
|
|
||||||
# Checks consistency of the media directory at startup:
|
# Checks consistency of the media directory at startup:
|
||||||
# 1. When `media_compat_file_link` is enbled, this check will upgrade media when switching back
|
# 1. When `media_compat_file_link` is enbled, this check will upgrade media when switching back
|
||||||
# and forth between Conduit and Conduwuit. Both options must be enabled to handle this.
|
# and forth between Conduit and Conduwuit. Both options must be enabled to handle this.
|
||||||
|
|
|
@ -293,6 +293,8 @@ pub struct Config {
|
||||||
pub media_startup_check: bool,
|
pub media_startup_check: bool,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub media_compat_file_link: bool,
|
pub media_compat_file_link: bool,
|
||||||
|
#[serde(default)]
|
||||||
|
pub prune_missing_media: bool,
|
||||||
#[serde(default = "Vec::new")]
|
#[serde(default = "Vec::new")]
|
||||||
pub prevent_media_downloads_from: Vec<OwnedServerName>,
|
pub prevent_media_downloads_from: Vec<OwnedServerName>,
|
||||||
|
|
||||||
|
@ -742,6 +744,7 @@ impl fmt::Display for Config {
|
||||||
line("RocksDB Statistics level", &self.rocksdb_stats_level.to_string());
|
line("RocksDB Statistics level", &self.rocksdb_stats_level.to_string());
|
||||||
line("Media integrity checks on startup", &self.media_startup_check.to_string());
|
line("Media integrity checks on startup", &self.media_startup_check.to_string());
|
||||||
line("Media compatibility filesystem links", &self.media_compat_file_link.to_string());
|
line("Media compatibility filesystem links", &self.media_compat_file_link.to_string());
|
||||||
|
line("Prune missing media from database", &self.prune_missing_media.to_string());
|
||||||
line("Prevent Media Downloads From", {
|
line("Prevent Media Downloads From", {
|
||||||
let mut lst = vec![];
|
let mut lst = vec![];
|
||||||
for domain in &self.prevent_media_downloads_from {
|
for domain in &self.prevent_media_downloads_from {
|
||||||
|
|
|
@ -833,7 +833,7 @@ async fn handle_media_check(
|
||||||
.map_or(false, |md| md.is_symlink())
|
.map_or(false, |md| md.is_symlink())
|
||||||
};
|
};
|
||||||
|
|
||||||
if !old_exists && !new_exists {
|
if config.prune_missing_media && !old_exists && !new_exists {
|
||||||
error!(
|
error!(
|
||||||
media_id = ?encode_key(key), ?new_path, ?old_path,
|
media_id = ?encode_key(key), ?new_path, ?old_path,
|
||||||
"Media is missing at all paths. Removing from database..."
|
"Media is missing at all paths. Removing from database..."
|
||||||
|
|
Loading…
Add table
Reference in a new issue