fix: don't use failed file hashes

fixes #377
This commit is contained in:
Paul Makles
2024-10-28 13:40:40 +00:00
parent ab58177dfa
commit af0d24c7c6

View File

@@ -207,16 +207,27 @@ async fn upload_file(
}; };
// Find an existing hash and use that if possible // Find an existing hash and use that if possible
if let Ok(file_hash) = db let file_hash_exists = if let Ok(file_hash) = db
.fetch_attachment_hash(&format!("{original_hash:02x}")) .fetch_attachment_hash(&format!("{original_hash:02x}"))
.await .await
{ {
let tag: &'static str = tag.into(); if !file_hash.iv.is_empty() {
db.insert_attachment(&file_hash.into_file(id.clone(), tag.to_owned(), filename, user.id)) let tag: &'static str = tag.into();
db.insert_attachment(&file_hash.into_file(
id.clone(),
tag.to_owned(),
filename,
user.id,
))
.await?; .await?;
return Ok(Json(UploadResponse { id })); return Ok(Json(UploadResponse { id }));
} }
true
} else {
false
};
// Determine the mime type for the file // Determine the mime type for the file
let mime_type = determine_mime_type(&mut file.contents, &buf, &filename); let mime_type = determine_mime_type(&mut file.contents, &buf, &filename);
@@ -274,7 +285,10 @@ async fn upload_file(
size: new_file_size as isize, size: new_file_size as isize,
}; };
db.insert_attachment_hash(&file_hash).await?; // Add attachment hash if it doesn't exist
if !file_hash_exists {
db.insert_attachment_hash(&file_hash).await?;
}
// Upload the file to S3 and commit nonce to database // Upload the file to S3 and commit nonce to database
let upload_start = Instant::now(); let upload_start = Instant::now();