From bc4333812722ac9da2e294c1692010285023766f Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Tue, 31 Dec 2024 08:46:17 -0600 Subject: [PATCH] [bug] S3 error responses are not being logged #29 --- .../librepertory/src/providers/s3/s3_provider.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/repertory/librepertory/src/providers/s3/s3_provider.cpp b/repertory/librepertory/src/providers/s3/s3_provider.cpp index 823f77d5..ffa83e07 100644 --- a/repertory/librepertory/src/providers/s3/s3_provider.cpp +++ b/repertory/librepertory/src/providers/s3/s3_provider.cpp @@ -955,10 +955,13 @@ auto s3_provider::remove_file_impl(const std::string &api_path) -> api_error { auto object_name = utils::path::create_api_path(is_encrypted ? key : api_path); - curl::requests::http_delete del{}; + std::string response_data : curl::requests::http_delete del{}; del.allow_timeout = true; del.aws_service = "aws:amz:" + cfg.region + ":s3"; del.path = object_name; + del.response_handler = [&response_data](auto &&data, long /*response_code*/) { + response_data = std::string(data.begin(), data.end()); + }; long response_code{}; stop_type stop_requested{}; @@ -972,8 +975,9 @@ auto s3_provider::remove_file_impl(const std::string &api_path) -> api_error { if ((response_code < http_error_codes::ok || response_code >= http_error_codes::multiple_choices) && response_code != http_error_codes::not_found) { - utils::error::raise_api_path_error(function_name, api_path, response_code, - "failed to remove file"); + utils::error::raise_api_path_error( + function_name, api_path, response_code, + fmt::format("failed to remove file|response|{}", response_data)); return api_error::comm_error; }