src/api2/admin/datastore.rs: use correct path for download

This commit is contained in:
Dietmar Maurer 2019-06-25 12:59:36 +02:00
parent 81820b0d4d
commit f14a8c9a85

View File

@ -402,6 +402,9 @@ fn download_file(
) -> Result<BoxFut, Error> { ) -> Result<BoxFut, Error> {
let store = tools::required_string_param(&param, "store")?; let store = tools::required_string_param(&param, "store")?;
let datastore = DataStore::lookup_datastore(store)?;
let file_name = tools::required_string_param(&param, "file-name")?.to_owned(); let file_name = tools::required_string_param(&param, "file-name")?.to_owned();
let backup_type = tools::required_string_param(&param, "backup-type")?; let backup_type = tools::required_string_param(&param, "backup-type")?;
@ -413,10 +416,11 @@ fn download_file(
let backup_dir = BackupDir::new(backup_type, backup_id, backup_time); let backup_dir = BackupDir::new(backup_type, backup_id, backup_time);
let mut path = backup_dir.relative_path(); let mut path = datastore.base_path();
path.push(backup_dir.relative_path());
path.push(&file_name); path.push(&file_name);
let response_future = tokio::fs::File::open(file_name) let response_future = tokio::fs::File::open(path)
.map_err(|err| http_err!(BAD_REQUEST, format!("File open failed: {}", err))) .map_err(|err| http_err!(BAD_REQUEST, format!("File open failed: {}", err)))
.and_then(move |file| { .and_then(move |file| {
let payload = tokio::codec::FramedRead::new(file, tokio::codec::BytesCodec::new()). let payload = tokio::codec::FramedRead::new(file, tokio::codec::BytesCodec::new()).