mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-14 05:05:54 +08:00
Add API for moving files (#1016)
### What problem does this PR solve? Add backend API support for moving files into other directory ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
parent
c58a1c48eb
commit
4ec845c0a6
@ -343,5 +343,27 @@ def get(file_id):
|
|||||||
'application/%s' %
|
'application/%s' %
|
||||||
ext.group(1))
|
ext.group(1))
|
||||||
return response
|
return response
|
||||||
|
except Exception as e:
|
||||||
|
return server_error_response(e)
|
||||||
|
|
||||||
|
@manager.route('/mv', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@validate_request("src_file_ids", "dest_file_id")
|
||||||
|
def move():
|
||||||
|
req = request.json
|
||||||
|
try:
|
||||||
|
file_ids = req["src_file_ids"]
|
||||||
|
parent_id = req["dest_file_id"]
|
||||||
|
for file_id in file_ids:
|
||||||
|
e, file = FileService.get_by_id(file_id)
|
||||||
|
if not e:
|
||||||
|
return get_data_error_result(retmsg="File or Folder not found!")
|
||||||
|
if not file.tenant_id:
|
||||||
|
return get_data_error_result(retmsg="Tenant not found!")
|
||||||
|
fe, _ = FileService.get_by_id(parent_id)
|
||||||
|
if not fe:
|
||||||
|
return get_data_error_result(retmsg="Parent Folder not found!")
|
||||||
|
FileService.move_file(file_ids, parent_id)
|
||||||
|
return get_json_result(data=True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return server_error_response(e)
|
return server_error_response(e)
|
@ -304,4 +304,13 @@ class FileService(CommonService):
|
|||||||
"source_type": FileSource.KNOWLEDGEBASE
|
"source_type": FileSource.KNOWLEDGEBASE
|
||||||
}
|
}
|
||||||
cls.save(**file)
|
cls.save(**file)
|
||||||
File2DocumentService.save(**{"id": get_uuid(), "file_id": file["id"], "document_id": doc["id"]})
|
File2DocumentService.save(**{"id": get_uuid(), "file_id": file["id"], "document_id": doc["id"]})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@DB.connection_context()
|
||||||
|
def move_file(cls, file_ids, folder_id):
|
||||||
|
try:
|
||||||
|
cls.filter_update((cls.model.id << file_ids, ), { 'parent_id': folder_id })
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
raise RuntimeError("Database error (File move)!")
|
Loading…
x
Reference in New Issue
Block a user