mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-19 09:16:57 +00:00
perf: 优化获取同名文件列表
This commit is contained in:
parent
8e89d42343
commit
1eff33f3f7
@ -99,15 +99,15 @@ class JobViewSet(OrgBulkModelViewSet):
|
|||||||
lambda: run_ops_job_execution.apply_async((str(execution.id),), task_id=str(execution.id)))
|
lambda: run_ops_job_execution.apply_async((str(execution.id),), task_id=str(execution.id)))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_same_filenames(files):
|
def get_duplicates_filenames(files):
|
||||||
filename_set = set()
|
seen = set()
|
||||||
same_filenames = []
|
duplicates = set()
|
||||||
for file in files:
|
for file in files:
|
||||||
filename = file.name
|
if file in seen:
|
||||||
if filename in filename_set:
|
duplicates.add(file)
|
||||||
same_filenames.append(filename)
|
else:
|
||||||
filename_set.add(filename)
|
seen.add(file)
|
||||||
return same_filenames
|
return list(duplicates)
|
||||||
|
|
||||||
@action(methods=[POST], detail=False, serializer_class=FileSerializer, permission_classes=[IsValidUser, ],
|
@action(methods=[POST], detail=False, serializer_class=FileSerializer, permission_classes=[IsValidUser, ],
|
||||||
url_path='upload')
|
url_path='upload')
|
||||||
@ -119,7 +119,7 @@ class JobViewSet(OrgBulkModelViewSet):
|
|||||||
msg = 'Upload data invalid: {}'.format(serializer.errors)
|
msg = 'Upload data invalid: {}'.format(serializer.errors)
|
||||||
return Response({'msg': msg}, status=400)
|
return Response({'msg': msg}, status=400)
|
||||||
|
|
||||||
same_filenames = self.get_same_filenames(uploaded_files)
|
same_filenames = self.get_duplicates_filenames(uploaded_files)
|
||||||
if same_filenames:
|
if same_filenames:
|
||||||
return Response({'msg': _("Duplicate file exists")}, status=400)
|
return Response({'msg': _("Duplicate file exists")}, status=400)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user