always use direct for read-only providers
This commit is contained in:
@ -380,10 +380,11 @@ auto file_manager::open(const std::string &api_path, bool directory,
|
|||||||
return open(api_path, directory, ofd, handle, file, nullptr);
|
return open(api_path, directory, ofd, handle, file, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto file_manager::open(
|
auto file_manager::open(const std::string &api_path, bool directory,
|
||||||
const std::string &api_path, bool directory, const open_file_data &ofd,
|
const open_file_data &ofd, std::uint64_t &handle,
|
||||||
std::uint64_t &handle, std::shared_ptr<i_open_file> &file,
|
std::shared_ptr<i_open_file> &file,
|
||||||
std::shared_ptr<i_closeable_open_file> closeable_file) -> api_error {
|
std::shared_ptr<i_closeable_open_file> closeable_file)
|
||||||
|
-> api_error {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
const auto create_and_add_handle =
|
const auto create_and_add_handle =
|
||||||
@ -435,6 +436,10 @@ auto file_manager::open(
|
|||||||
auto ring_size{ring_buffer_file_size / chunk_size};
|
auto ring_size{ring_buffer_file_size / chunk_size};
|
||||||
|
|
||||||
const auto get_download_type = [&](download_type type) -> download_type {
|
const auto get_download_type = [&](download_type type) -> download_type {
|
||||||
|
if (not directory && provider_.is_read_only()) {
|
||||||
|
return download_type::direct;
|
||||||
|
}
|
||||||
|
|
||||||
if (directory || fsi.size == 0U || is_processing(api_path)) {
|
if (directory || fsi.size == 0U || is_processing(api_path)) {
|
||||||
return download_type::default_;
|
return download_type::default_;
|
||||||
}
|
}
|
||||||
@ -747,8 +752,8 @@ auto file_manager::rename_directory(const std::string &from_api_path,
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto file_manager::rename_file(const std::string &from_api_path,
|
auto file_manager::rename_file(const std::string &from_api_path,
|
||||||
const std::string &to_api_path,
|
const std::string &to_api_path, bool overwrite)
|
||||||
bool overwrite) -> api_error {
|
-> api_error {
|
||||||
if (not provider_.is_rename_supported()) {
|
if (not provider_.is_rename_supported()) {
|
||||||
return api_error::not_implemented;
|
return api_error::not_implemented;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user