Simplifies file upload naming to use the document name, instead in needing to keep it around

This commit is contained in:
Trenton Holmes 2022-12-26 13:33:43 -08:00 committed by Trenton H
parent 2460c3e076
commit a88b318d7d
2 changed files with 16 additions and 12 deletions

View File

@ -7,6 +7,7 @@ import tempfile
import urllib.request import urllib.request
import uuid import uuid
import zipfile import zipfile
from pathlib import Path
from unittest import mock from unittest import mock
from unittest.mock import MagicMock from unittest.mock import MagicMock
@ -808,7 +809,9 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
m.assert_called_once() m.assert_called_once()
args, kwargs = m.call_args args, kwargs = m.call_args
self.assertEqual(kwargs["override_filename"], "simple.pdf") file_path = Path(args[0])
self.assertEqual(file_path.name, "simple.pdf")
self.assertIn(Path(settings.SCRATCH_DIR), file_path.parents)
self.assertIsNone(kwargs["override_title"]) self.assertIsNone(kwargs["override_title"])
self.assertIsNone(kwargs["override_correspondent_id"]) self.assertIsNone(kwargs["override_correspondent_id"])
self.assertIsNone(kwargs["override_document_type_id"]) self.assertIsNone(kwargs["override_document_type_id"])
@ -833,7 +836,9 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
m.assert_called_once() m.assert_called_once()
args, kwargs = m.call_args args, kwargs = m.call_args
self.assertEqual(kwargs["override_filename"], "simple.pdf") file_path = Path(args[0])
self.assertEqual(file_path.name, "simple.pdf")
self.assertIn(Path(settings.SCRATCH_DIR), file_path.parents)
self.assertIsNone(kwargs["override_title"]) self.assertIsNone(kwargs["override_title"])
self.assertIsNone(kwargs["override_correspondent_id"]) self.assertIsNone(kwargs["override_correspondent_id"])
self.assertIsNone(kwargs["override_document_type_id"]) self.assertIsNone(kwargs["override_document_type_id"])

View File

@ -7,6 +7,7 @@ import urllib
import uuid import uuid
import zipfile import zipfile
from datetime import datetime from datetime import datetime
from pathlib import Path
from time import mktime from time import mktime
from unicodedata import normalize from unicodedata import normalize
from urllib.parse import quote from urllib.parse import quote
@ -623,20 +624,18 @@ class PostDocumentView(GenericAPIView):
os.makedirs(settings.SCRATCH_DIR, exist_ok=True) os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
with tempfile.NamedTemporaryFile( temp_file_path = Path(tempfile.mkdtemp(dir=settings.SCRATCH_DIR)) / Path(
prefix="paperless-upload-", doc_name,
dir=settings.SCRATCH_DIR, )
delete=False,
) as f: temp_file_path.write_bytes(doc_data)
f.write(doc_data)
os.utime(f.name, times=(t, t)) os.utime(temp_file_path, times=(t, t))
temp_filename = f.name
task_id = str(uuid.uuid4()) task_id = str(uuid.uuid4())
async_task = consume_file.delay( async_task = consume_file.delay(
temp_filename, temp_file_path,
override_filename=doc_name,
override_title=title, override_title=title,
override_correspondent_id=correspondent_id, override_correspondent_id=correspondent_id,
override_document_type_id=document_type_id, override_document_type_id=document_type_id,