Aryan Jain commited on
Commit
ab6174c
·
1 Parent(s): b0ab519

fix issue

Browse files
Files changed (2) hide show
  1. Dockerfile +1 -1
  2. src/utils/_file_client.py +22 -15
Dockerfile CHANGED
@@ -38,7 +38,7 @@ RUN poetry config virtualenvs.create false \
38
  RUN mkdir -p /tmp/.config/libreoffice && \
39
  chmod 755 /tmp/.config/libreoffice
40
 
41
- RUN mkdir -p /tmp && chmod 777 /tmp
42
 
43
  ENV HOME=/tmp \
44
  TMPDIR=/tmp \
 
38
  RUN mkdir -p /tmp/.config/libreoffice && \
39
  chmod 755 /tmp/.config/libreoffice
40
 
41
+ RUN mkdir -p /files && chmod 777 /files
42
 
43
  ENV HOME=/tmp \
44
  TMPDIR=/tmp \
src/utils/_file_client.py CHANGED
@@ -60,32 +60,39 @@ class FileClient:
60
  data = {
61
  "file_type": "Word Document"
62
  }
 
63
  file_id = str(uuid.uuid4())
64
- docx_path = f"/tmp/{file_id}.docx"
65
- pdf_path = f"/tmp/{file_id}.pdf"
 
 
 
66
 
67
  try:
68
  with open(docx_path, "wb") as f:
69
  f.write(file_bytes.getvalue())
70
 
71
- cmd = [
72
- "libreoffice",
73
- "--headless",
74
- "--convert-to", "pdf",
75
- "--outdir", "/tmp",
76
- docx_path
77
- ]
78
-
79
  env = os.environ.copy()
80
  env.update({
81
- "HOME": "/tmp",
 
82
  "SAL_USE_VCLPLUGIN": "svp"
83
  })
84
 
85
- result = await asyncio.to_thread(
86
- subprocess.run,
87
- cmd,
88
- check=True,
 
 
 
 
 
 
 
 
 
 
89
  capture_output=True,
90
  env=env
91
  )
 
60
  data = {
61
  "file_type": "Word Document"
62
  }
63
+
64
  file_id = str(uuid.uuid4())
65
+ work_dir = f"/files/{file_id}"
66
+ os.makedirs(work_dir, exist_ok=True)
67
+
68
+ docx_path = os.path.join(work_dir, "input.docx")
69
+ pdf_path = os.path.join(work_dir, "input.pdf")
70
 
71
  try:
72
  with open(docx_path, "wb") as f:
73
  f.write(file_bytes.getvalue())
74
 
 
 
 
 
 
 
 
 
75
  env = os.environ.copy()
76
  env.update({
77
+ "HOME": work_dir,
78
+ "UserInstallation": f"file://{work_dir}",
79
  "SAL_USE_VCLPLUGIN": "svp"
80
  })
81
 
82
+ cmd = [
83
+ "libreoffice",
84
+ "--headless",
85
+ "--nologo",
86
+ "--nofirststartwizard",
87
+ "--convert-to", "pdf",
88
+ "--outdir", work_dir,
89
+ docx_path
90
+ ]
91
+
92
+ await asyncio.to_thread(
93
+ subprocess.run,
94
+ cmd,
95
+ check=True,
96
  capture_output=True,
97
  env=env
98
  )