Skip to main content

tuwunel_admin/media/
get_remote_file.rs

1use std::time::Duration;
2
3use ruma::{Mxc, OwnedMxcUri, OwnedServerName};
4use tuwunel_core::Result;
5
6use crate::admin_command;
7
8#[admin_command]
9pub(super) async fn get_remote_file(
10	&self,
11	mxc: OwnedMxcUri,
12	server: Option<OwnedServerName>,
13	timeout: u32,
14) -> Result {
15	let mxc: Mxc<'_> = mxc.as_str().try_into()?;
16	let timeout = Duration::from_millis(timeout.into());
17	let mut result = self
18		.services
19		.media
20		.fetch_remote_content(&mxc, server.as_deref(), timeout)
21		.await?;
22
23	let len = result.content.len();
24	result.content.clear();
25
26	write!(self, "```\n{result:#?}\nreceived {len} bytes for file content.\n```").await
27}