Automatically remove orphan files

This commit is contained in:
2025-04-09 21:51:23 +02:00
parent 6f18aafc33
commit 7c04acaf4b
5 changed files with 15 additions and 5 deletions

View File

@ -1,5 +1,6 @@
use crate::connections::db_connection::db;
use crate::connections::s3_connection;
use crate::constants;
use crate::models::files::{File, FileID, NewFile};
use crate::models::users::UserID;
use crate::schema::files;
@ -86,6 +87,11 @@ pub async fn get_file_content(file: &File) -> anyhow::Result<Vec<u8>> {
pub async fn delete_file_if_unused(id: FileID) -> anyhow::Result<bool> {
let file = get_file_with_id(id)?;
// Check if the file is old enough
if file.time_create as u64 + constants::MIN_FILE_LIFETIME > time() {
return Ok(false);
}
let res = diesel::delete(files::dsl::files.filter(files::dsl::id.eq(file.id().0)))
.execute(&mut db()?);

View File

@ -100,7 +100,7 @@ pub async fn delete(user_id: UserID, token_id: TokenID) -> anyhow::Result<()> {
/// Remove outdated token
pub async fn cleanup() -> anyhow::Result<()> {
let query = format!(
"DELETE from token where time_used + max_inactivity < {};",
"DELETE from tokens where time_used + max_inactivity < {};",
time()
);
diesel::sql_query(query).execute(&mut db()?)?;