aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared-server/assetdb.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2026-02-09 01:22:30 +0000
committerMohamed Bassem <me@mbassem.com>2026-02-09 01:22:30 +0000
commita04d3c35fc9082e529a713605a038d236bb072c7 (patch)
tree3e69735f9762c1739402afe30c26961b7d8e598a /packages/shared-server/assetdb.ts
parent298a4277da7376ee6e7471f180c0030f35db49e4 (diff)
downloadkarakeep-a04d3c35fc9082e529a713605a038d236bb072c7.tar.zst
refactor: move assetdb to shared-server
Diffstat (limited to '')
-rw-r--r--packages/shared-server/assetdb.ts (renamed from packages/shared/assetdb.ts)34
1 files changed, 23 insertions, 11 deletions
diff --git a/packages/shared/assetdb.ts b/packages/shared-server/assetdb.ts
index 2e22faf7..bb6bb75e 100644
--- a/packages/shared/assetdb.ts
+++ b/packages/shared-server/assetdb.ts
@@ -11,12 +11,12 @@ import {
PutObjectCommand,
S3Client,
} from "@aws-sdk/client-s3";
-import { Glob } from "glob";
+import glob from "glob";
import { z } from "zod";
-import serverConfig from "./config";
-import logger from "./logger";
-import { QuotaApproved } from "./storageQuota";
+import serverConfig from "@karakeep/shared/config";
+import logger from "@karakeep/shared/logger";
+import { QuotaApproved } from "@karakeep/shared/storageQuota";
const ROOT_PATH = serverConfig.assetsDir;
@@ -283,18 +283,30 @@ class LocalFileSystemAssetStore implements AssetStore {
}
async *getAllAssets() {
- const g = new Glob(`/**/**/asset.bin`, {
- maxDepth: 3,
- root: this.rootPath,
- cwd: this.rootPath,
- absolute: false,
+ const files = await new Promise<string[]>((resolve, reject) => {
+ glob(
+ "*/*/asset.bin",
+ {
+ cwd: this.rootPath,
+ nodir: true,
+ },
+ (err, matches) => {
+ if (err) {
+ reject(err);
+ return;
+ }
+ resolve(matches);
+ },
+ );
});
- for await (const file of g) {
+
+ for (const file of files) {
const [userId, assetId] = file.split("/").slice(0, 2);
const [size, metadata] = await Promise.all([
this.getAssetSize({ userId, assetId }),
this.readAssetMetadata({ userId, assetId }),
]);
+
yield {
userId,
assetId,
@@ -605,7 +617,7 @@ export { LocalFileSystemAssetStore, S3AssetStore };
* Example usage of S3AssetStore:
*
* import { S3Client } from "@aws-sdk/client-s3";
- * import { S3AssetStore } from "@karakeep/shared/assetdb";
+ * import { S3AssetStore } from "@karakeep/shared-server/assetdb";
*
* const s3Client = new S3Client({
* region: "us-east-1",