|
@@ -73,12 +73,19 @@ class R2RFileService(OSSFileService):
|
|
|
query: str, file_keys: List[str], folder_keys: List[str] = None
|
|
|
) -> dict:
|
|
|
files = {}
|
|
|
- filters = {
|
|
|
- "$or": [
|
|
|
- {"file_key": {"$in": file_keys}},
|
|
|
- {"document_id": {"$in": file_keys}},
|
|
|
- ]
|
|
|
- }
|
|
|
+ file_key = {"$in": []}
|
|
|
+ document_id = {"$in": []}
|
|
|
+ filters = {"$or": []}
|
|
|
+ for key in file_keys:
|
|
|
+ if len(key) == 36:
|
|
|
+ document_id["$in"].append(key)
|
|
|
+ else:
|
|
|
+ file_key["$in"].append(key)
|
|
|
+ if len(document_id["$in"]) > 0:
|
|
|
+ filters["$or"].append(document_id)
|
|
|
+ if len(file_key["$in"]) > 0:
|
|
|
+ filters["$or"].append(file_key)
|
|
|
+
|
|
|
if folder_keys:
|
|
|
filters = filters["$or"].append(
|
|
|
{"collection_ids": {"$in": folder_keys}}
|