This commit is contained in:
@ -600,11 +600,11 @@ auto s3_provider::get_file_list(api_file_list &list,
|
|||||||
for (const auto &node : node_list) {
|
for (const auto &node : node_list) {
|
||||||
auto object_name =
|
auto object_name =
|
||||||
std::string{node.node().select_node("Key").node().text().as_string()};
|
std::string{node.node().select_node("Key").node().text().as_string()};
|
||||||
auto api_path{object_name};
|
if (utils::string::ends_with(object_name, "/")) {
|
||||||
if (utils::string::ends_with(api_path, "/")) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto api_path{object_name};
|
||||||
auto is_encrypted = not get_s3_config().encryption_token.empty();
|
auto is_encrypted = not get_s3_config().encryption_token.empty();
|
||||||
if (is_encrypted) {
|
if (is_encrypted) {
|
||||||
auto res = decrypt_object_name(api_path);
|
auto res = decrypt_object_name(api_path);
|
||||||
|
@ -25,26 +25,27 @@
|
|||||||
|
|
||||||
#include "utils/collection.hpp"
|
#include "utils/collection.hpp"
|
||||||
#include "utils/encrypting_reader.hpp"
|
#include "utils/encrypting_reader.hpp"
|
||||||
|
#include "utils/path.hpp"
|
||||||
|
|
||||||
namespace repertory::utils::encryption {
|
namespace repertory::utils::encryption {
|
||||||
auto decrypt_file_path(std::string_view encryption_token,
|
auto decrypt_file_path(std::string_view encryption_token,
|
||||||
std::string &file_path) -> bool {
|
std::string &file_path) -> bool {
|
||||||
std::string decrypted_file_path{};
|
std::vector<std::string> decrypted_parts;
|
||||||
for (const auto &part : std::filesystem::path(file_path)) {
|
for (const auto &part : std::filesystem::path(file_path)) {
|
||||||
auto file_name = part.string();
|
auto file_name = part.string();
|
||||||
if (file_name == "/") {
|
if (file_name == "/") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto res = decrypt_file_name(encryption_token, file_name);
|
if (not decrypt_file_name(encryption_token, file_name)) {
|
||||||
if (not res) {
|
return false;
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
decrypted_file_path += '/' + file_name;
|
decrypted_parts.push_back(file_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
file_path = decrypted_file_path;
|
file_path =
|
||||||
|
utils::path::create_api_path(utils::string::join(decrypted_parts, '/'));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,12 +57,7 @@ auto decrypt_file_name(std::string_view encryption_token,
|
|||||||
}
|
}
|
||||||
|
|
||||||
file_name.clear();
|
file_name.clear();
|
||||||
if (not utils::encryption::decrypt_data(encryption_token, buffer,
|
return utils::encryption::decrypt_data(encryption_token, buffer, file_name);
|
||||||
file_name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PROJECT_ENABLE_CURL)
|
#if defined(PROJECT_ENABLE_CURL)
|
||||||
|
Reference in New Issue
Block a user