refactor(db): use jwalk instead of walkdir

refactor/errors
Tomáš Mládek 2023-11-05 14:26:07 +01:00
parent 862ed1c08a
commit dc9a626a4e
3 changed files with 38 additions and 4 deletions

36
Cargo.lock generated
View File

@ -812,6 +812,20 @@ dependencies = [
"cfg-if 1.0.0",
]
[[package]]
name = "crossbeam"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-epoch",
"crossbeam-queue",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-channel"
version = "0.5.8"
@ -846,6 +860,16 @@ dependencies = [
"scopeguard",
]
[[package]]
name = "crossbeam-queue"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.16"
@ -1555,6 +1579,16 @@ dependencies = [
"simple_asn1",
]
[[package]]
name = "jwalk"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56"
dependencies = [
"crossbeam",
"rayon",
]
[[package]]
name = "kamadak-exif"
version = "0.5.5"
@ -3203,6 +3237,7 @@ dependencies = [
"diesel",
"diesel_migrations",
"filebuffer",
"jwalk",
"lazy_static",
"lexpr",
"libsqlite3-sys",
@ -3225,7 +3260,6 @@ dependencies = [
"upend-base",
"url",
"uuid",
"walkdir",
]
[[package]]

View File

@ -52,7 +52,7 @@ url = { version = "2", features = ["serde"] }
filebuffer = "0.4.0"
tempfile = "^3.2.0"
walkdir = "2"
jwalk = "0.8.1"
tree_magic_mini = { version = "3.0.2", features = ["with-gpl-data"] }

View File

@ -12,6 +12,7 @@ use chrono::prelude::*;
use diesel::r2d2::{self, ConnectionManager, ManageConnection};
use diesel::ExpressionMethods;
use diesel::{Connection, QueryDsl, RunQueryDsl, SqliteConnection};
use jwalk::WalkDir;
use lru::LruCache;
use rayon::prelude::*;
use serde_json::json;
@ -29,7 +30,6 @@ use upend_base::addressing::Address;
use upend_base::constants::{ATTR_ADDED, ATTR_BY, ATTR_IN, ATTR_LABEL, ATTR_OF, TYPE_HASH_ADDRESS};
use upend_base::entry::Entry;
use upend_base::hash::{b58_encode, UpMultihash};
use walkdir::WalkDir;
mod db;
@ -127,7 +127,7 @@ impl FsStore {
.follow_links(true)
.into_iter()
.filter_map(|e| e.ok())
.filter_map(|e| fs::canonicalize(e.into_path()).ok())
.filter_map(|e| fs::canonicalize(e.path()).ok())
.filter(|e| e.is_file())
.filter(|e| !e.starts_with(absolute_dir_path.join(UPEND_SUBDIR)))
.collect();