From ba694720fcc6163fd46dcb186f2d5fd9f1c515a2 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 18 Jun 2020 13:55:20 +0200 Subject: [PATCH] api2/admin/datastore: log stream error during file download the client cannot get an error during an chunked http transfer, so at least log it server side Signed-off-by: Dominik Csapak --- src/api2/admin/datastore.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index 5d0b8635..0dce2b4f 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -743,12 +743,16 @@ fn download_file( path.push(backup_dir.relative_path()); path.push(&file_name); - let file = tokio::fs::File::open(path) + let file = tokio::fs::File::open(&path) .map_err(|err| http_err!(BAD_REQUEST, format!("File open failed: {}", err))) .await?; let payload = tokio_util::codec::FramedRead::new(file, tokio_util::codec::BytesCodec::new()) - .map_ok(|bytes| hyper::body::Bytes::from(bytes.freeze())); + .map_ok(|bytes| hyper::body::Bytes::from(bytes.freeze())) + .map_err(move |err| { + eprintln!("error during streaming of '{:?}' - {}", &path, err); + err + }); let body = Body::wrap_stream(payload); // fixme: set other headers ?