tuwunel_admin/media/
get_remote_file.rs1use 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}