diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b8677d3..baba9b3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ * Fixed setting `HostConfig.Path` via `set_value_by_name` * Fixed setting `HostConfig.Protocol` via `set_value_by_name` * Integrated `renterd` version 2.x +* Prefer using cache file when opening files if it exists * Refactored `app_config` unit tests * Refactored polling to be more accurate on scheduling tasks diff --git a/repertory/librepertory/src/file_manager/file_manager.cpp b/repertory/librepertory/src/file_manager/file_manager.cpp index 8d8d512c..9c347dec 100644 --- a/repertory/librepertory/src/file_manager/file_manager.cpp +++ b/repertory/librepertory/src/file_manager/file_manager.cpp @@ -466,6 +466,13 @@ auto file_manager::open(const std::string &api_path, bool directory, return download_type::default_; } + if (utils::file::file{fsi.source_path}.exists()) { + auto size = utils::file::file{fsi.source_path}.size(); + if (size.has_value() && *size == fsi.size) { + return download_type::default_; + } + } + if (type == download_type::direct) { return type; }