python - Lambda 和 Textract:start_document_text_detection 未知参数“OutputConfig”
问题描述
我正在尝试使用 Lambda 函数和 Textract 从 PDF 中提取文本。
我的问题是: 如何调用“start_document_text_detection”以便 Textract 自动将其响应发送到 S3?
我收到一条错误消息:
[错误] ParamValidationError:参数验证失败:输入中的未知参数:“OutputConfig”,必须是以下之一:DocumentLocation、ClientRequestToken、JobTag、NotificationChannel
我的代码:
textract = boto3.client('textract')
textract.start_document_text_detection(
DocumentLocation={
'S3Object': {
'Bucket': origin_bucket,
'Name': key
}
},
JobTag=key + '_Job',
OutputConfig={
"S3Bucket": destination_bucket,
"S3Prefix": key
})
Boto3 文档显示我可以传递一个名为“OutputConfig”的参数: https ://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.start_document_text_detection
response = client.start_document_text_detection(
DocumentLocation={
'S3Object': {
'Bucket': 'string',
'Name': 'string',
'Version': 'string'
}
},
ClientRequestToken='string',
JobTag='string',
NotificationChannel={
'SNSTopicArn': 'string',
'RoleArn': 'string'
},
OutputConfig={
'S3Bucket': 'string',
'S3Prefix': 'string'
}
)
AWS Textract 的官方文档也说它是一个有效参数:
另一个可用的可选参数是OutputConfig,它允许您调整输出的放置位置。默认情况下,Amazon Textract 将在内部存储结果,并且只能通过 Get API 操作访问。启用 OutputConfig 后,您可以设置将输出发送到的存储桶的名称及其文件前缀,您可以在其中以 JSON 格式下载结果。这允许使用用户创建的存储桶来存储结果。
https://docs.aws.amazon.com/textract/latest/dg/api-async.html
解决方案
您似乎使用的是较旧版本的 boto3。升级到最新版本 (>1.16.36) 应该可以解决您的问题。
推荐阅读
- python - 如何用 python 和漂亮的汤刮掉 CSS 图标
- karate - 从空手道的响应匹配中定义一个随机变量
- php - WooCommerce 另一种限制购物车物品数量的方法
- sql - How to create multiple rows for every workingday between an start and end date
- .net-core - 模型中的 IFormFile 始终为空
- excel - 刷新表时出现运行时错误 1004
- html - WordPress。让社交媒体消失的代码
- reactjs - how to place image in material ui button by passing startIcon prop
- excel - 在EXCEL中使用条件语句计算唯一记录
- asp.net - 读取 web.config 时出现 IIS 错误 500.19 错误