docs: Add 1 and update 6 files
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 1m25s
Build-Test-Publish / build (linux/arm64) (push) Successful in 2m21s
Build-Test-Publish / create-manifest (push) Successful in 15s

This commit is contained in:
Your Name
2025-08-10 22:50:51 +12:00
parent e64fbee94f
commit 22d4af7ac8
7 changed files with 203 additions and 11 deletions

View File

@@ -32,6 +32,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
std::map<std::string, std::string> params;
if (!server_.validate_write_request(req, resp, {}, params)) { // No required params now since token is in header
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -47,6 +48,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "File too large"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -62,6 +64,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "Failed to parse multipart data"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -80,6 +83,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "No file provided in upload"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -128,6 +132,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "Missing or invalid required metadata field: labeltags (must be non-empty array of label:tag pairs)"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -174,6 +179,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "Failed to create temporary file"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -189,6 +195,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
std::filesystem::remove(temp_path);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -203,6 +210,7 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
nlohmann::json response = {{"result", "error"}, {"error", "Failed to calculate hash"}};
resp->setBody(response.dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
return;
}
@@ -246,12 +254,14 @@ void PutHandler::handle_upload_object(const drogon::HttpRequestPtr& req, std::fu
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
// Attempt to clean up the moved file if index fails
try { if (std::filesystem::exists(final_path)) std::filesystem::remove(final_path); } catch(...) {};
server_.add_security_headers(resp);
callback(resp);
return;
}
resp->setBody(nlohmann::json({{"result", "success"}, {"hash", hash}}).dump());
resp->setContentTypeCode(drogon::CT_APPLICATION_JSON);
server_.add_security_headers(resp);
callback(resp);
}