如何在EC2 AWS的unoconv中解决此问题?

问题描述

我在项目中使用unoconv处理doc和docx时,我意识到,每当上一个文档时,该过程都很缓慢,甚至崩溃,看到实例的日志后,我发现了以下错误

Error: Unable to connect or start own listener. Aborting.
[Wed Nov 11 22:52:19.977189 2020] [:error] [pid 24885] Exception in thread Thread-4827:
[Wed Nov 11 22:52:19.977223 2020] [:error] [pid 24885] Traceback (most recent call last):
[Wed Nov 11 22:52:19.977228 2020] [:error] [pid 24885]   File "/usr/lib64/python3.6/threading.py",line 916,in _bootstrap_inner
[Wed Nov 11 22:52:19.977233 2020] [:error] [pid 24885]     self.run()
[Wed Nov 11 22:52:19.977237 2020] [:error] [pid 24885]   File "/usr/lib64/python3.6/threading.py",line 864,in run
[Wed Nov 11 22:52:19.977242 2020] [:error] [pid 24885]     self._target(*self._args,**self._kwargs)
[Wed Nov 11 22:52:19.977246 2020] [:error] [pid 24885]   File "/opt/python/bundle/35/app/combo/file_convert.py",line 133,in doc_to_pdf
[Wed Nov 11 22:52:19.977250 2020] [:error] [pid 24885]     k_out.set_contents_from_filename("/tmp/%s" % file_out)
[Wed Nov 11 22:52:19.977253 2020] [:error] [pid 24885]   File "/opt/python/run/venv/local/lib/python3.6/site-packages/boto/s3/key.py",line 1374,in set_contents_from_filename
[Wed Nov 11 22:52:19.977256 2020] [:error] [pid 24885]     with open(filename,'rb') as fp:
[Wed Nov 11 22:52:19.977260 2020] [:error] [pid 24885] FileNotFoundError: [Errno 2] No such file or directory: '/tmp/ec4b82ee-fa80-40f1-b5d4-cf7df61b0720.pdf'



FileNotFoundError: [Errno 2] No such file or directory: '/tmp/25241363-41e5-4407-9e2d-f8902a431135.pdf'
[2020-11-12 12:10:07,591: WARNING/MainProcess] # Texto doc or docx: Converter para PDF >> UNOCONV
Failed to connect to /opt/libreoffice6.0/program/soffice.bin (pid=3622) in 6 seconds.
Connector : Couldn't connect to socket (Success)
Error: Unable to connect or start own listener. Aborting.
[2020-11-12 12:10:14,698: WARNING/MainProcess] Exception in thread Thread-1933:
Traceback (most recent call last):
  File "/usr/lib64/python3.6/threading.py",in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.6/threading.py",in run
    self._target(*self._args,**self._kwargs)
  File "/opt/python/bundle/35/app/combo/file_convert.py",in doc_to_pdf
    k_out.set_contents_from_filename("/tmp/%s" % file_out)
  File "/opt/python/run/venv/local/lib/python3.6/site-packages/boto/s3/key.py",in set_contents_from_filename
    with open(filename,'rb') as fp:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/91b67718-551d-47aa-9306-55512b0b16d2.pdf'

这是我的doc至pdf函数的一部分,他在将文件保存到s3中时指责错误

        ## convert to PDF
        env = os.environ.copy()
        env['HOME'] = '/tmp'
        p = subprocess.Popen(["/unoconv/unoconv","-f","pdf","/tmp/%s" % 
        (file_name)],env=env)
        #p = subprocess.Popen(["unoconv",env=env)
        p.wait()

        if p:
            # Define S3 path
            resume_path = 'resumes/%s/' % str(date.today())

            # key is the S3 file name
            key = '%s%s' % (resume_path,file_out)

            # S3 Connection
            conn = S3Connection(settings.AWS_ACCESS_KEY_ID,settings.AWS_SECRET_ACCESS_KEY)
            bucket_out = Bucket(conn,settings.AWS_STORAGE_BUCKET_NAME)
            k_out = Key(bucket=bucket_out,name=key)

            # Upload to S3
            k_out.set_contents_from_filename("/tmp/%s" % file_out)
            k_out.make_public()

            # update the new file format
            user_cv.resume = key
            user_cv.save()

            # delete local file on server
            subprocess.call("rm -f /tmp/%s" % file_out,shell=True)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)