如何使用python使用AWS lambda将PDF文件转换为.txt



我需要使用python中的AWS lambda自动将许多PDF转换为文本文件3.7

我已经在自己的机器上成功地使用了Poppler/pdftotext,Tika和PypDF2转换PDF文件。但是Tika Times Out或需要在主机机上运行Java实例,我不确定该如何设置。pdftotext需要爆米花和在lambda上运行的所有解决方案似乎已经过时了,或者我对二进制文件不太熟悉以至于无法理解该解决方案。PYPDF2似乎是最有前途的,但测试引发了错误。

我为PYPDF2遇到的代码和错误如下:

pdf_file = open(s3.Bucket(my_bucket).download_file('test.pdf','test.pdf'),'rb')
  "errorMessage": "[Errno 30] Read-only file system: 'test.pdf.3F925aC8'",
  "errorType": "OSError",

and if I try to reference it directly,
pdf_file = open('https://s3.amazonaws.com/' + my_bucket + '/test.pdf', 'rb')
  "errorMessage": "[Errno 2] No such file or directory: 'https://s3.amazonaws.com/my_bucket/test.pdf'",
  "errorType": "FileNotFoundError",

aws lambda仅允许您写入/tmp文件夹,因此您应该下载文件并将其放入其中

作为错误指出,您正在尝试写入纯文件系统。您正在使用download_file方法,该方法试图将文件保存到失败的" test.pdf"。尝试将download_fileobj(链接(与内存缓冲区(例如io.BytesIO(一起使用。然后,将该流馈入PYPDF2。

示例:

import io
[...]
pdf_stream = io.StringIO()
object.download_fileobj(pdf_stream)
pdf_obj = PdfFileReader(pdf_stream)
[...]

相关内容

  • 没有找到相关文章

最新更新