【发布时间】:2018-02-27 06:54:59
【问题描述】:
很抱歉问了重复的问题,因为他们没有解决我之前已经在这里问过的问题,如何使用 lambda 函数将 pdf 文件从 s3 转换为字符串变量,
我的 lambda 函数显示错误
我在this answer 中找到以下代码 但我坚持在 lambda 中实现此代码,请分享您的想法,如果下面的代码正确,数据变量将包含 s3 中 pdf 文件的字符串转换。如果否,请提出一些更改我的代码的建议
Unable to import module 'lambda_function': No module named 'pdfminer'
import json
import boto3
import botocore
import sys
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
from pdfminer.layout import LAParams
import io
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
filename = 'myfile'
s3.download_file(bucket,key, '/tmp/'+filename)
print('reading')
fp = open('/tmp/'+filename, 'rU').read()
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
# Create a PDF interpreter object.
interpreter = PDFPageInterpreter(rsrcmgr, device)
# Process each page contained in the document.
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
data = retstr.getvalue()
print(data)
【问题讨论】:
标签: python amazon-web-services aws-lambda pdfminer