mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-17 07:41:23 +01:00
Return 504 when a file is missing to be by-spec
The spec defines that the media endpoints should return 504 when a file is not-yet-uploaded, which has been interpreted to include when a file was deleted. Modifies the /media/v3/download/ and /media/r0/thumbnail endpoints.
This commit is contained in:
parent
bf799c1fa1
commit
c70cfd3d25
3 changed files with 14 additions and 11 deletions
|
|
@ -3,7 +3,7 @@ use std::io::Cursor;
|
|||
use image::imageops::FilterType;
|
||||
use tokio::{
|
||||
fs::File,
|
||||
io::{AsyncReadExt, AsyncWriteExt, BufReader},
|
||||
io::{AsyncReadExt, AsyncWriteExt},
|
||||
};
|
||||
use tracing::{debug, warn};
|
||||
|
||||
|
|
@ -88,15 +88,17 @@ impl Service {
|
|||
self.db.search_file_metadata(mxc, 0, 0)
|
||||
{
|
||||
let path = services().globals.get_media_file(&key);
|
||||
let mut file = Vec::new();
|
||||
BufReader::new(File::open(path).await?)
|
||||
.read_to_end(&mut file)
|
||||
.await?;
|
||||
let mut file_data = Vec::new();
|
||||
let Ok(mut file) = File::open(path).await else {
|
||||
return Ok(None);
|
||||
};
|
||||
|
||||
file.read_to_end(&mut file_data).await?;
|
||||
|
||||
Ok(Some(FileMeta {
|
||||
content_disposition,
|
||||
content_type,
|
||||
file,
|
||||
file: file_data,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue