Skip to main content

tuwunel_admin/query/storage/
copy.rs

1use tuwunel_core::Result;
2use tuwunel_service::storage::CopyMode;
3
4use crate::admin_command;
5
6#[admin_command]
7pub(super) async fn query_storage_copy(
8	&self,
9	provider: Option<String>,
10	force: bool,
11	src: String,
12	dst: String,
13) -> Result {
14	let id = provider.as_deref().unwrap_or_default();
15	let provider = self.services.storage.provider(id)?;
16	let overwrite = force
17		.then_some(CopyMode::Overwrite)
18		.unwrap_or(CopyMode::Create);
19
20	let result = provider.copy(&src, &dst, overwrite).await;
21
22	write!(self, "{result:#?}\n").await
23}