【问题标题】:How can I use AWS Textract with Python如何将 AWS Textract 与 Python 结合使用
【发布时间】:2021-01-07 03:48:18
【问题描述】:

我已经测试了几乎所有在 Internet 上可以找到的 Amazon Textract 示例代码,但我无法让它工作。我可以从我的 Python 客户端上传和下载文件到 S3,所以凭据应该没问题。很多错误都指向某些区域故障,但我已经尝试了所有可能的组合。

这是最后一个测试电话之一 -

def test_parse_3():
# Document
s3BucketName = "xx-xxxx-xx"
documentName = "xxxx.jpg"

# Amazon Textract client
textract = boto3.client('textract')

# Call Amazon Textract
response = textract.detect_document_text(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

print(response)

看起来很简单,但它会产生错误 -

botocore.errorfactory.InvalidS3ObjectException: An error occurred (InvalidS3ObjectException) when calling the DetectDocumentText operation: Unable to get object metadata from S3. Check object key, region and/or access permissions.

任何想法有什么问题吗?有人有一个工作示例(我知道示例代码中的选项卡不正确)?

我还在 AWS 中测试了很多权限设置。凭据位于 aws sdk 创建的隐藏文件中。

【问题讨论】:

  • 你使用的bucket在哪个区域?

标签: python amazon-textract


【解决方案1】:

我相信你已经知道了,但是桶是区分大小写的。如果您已验证对象存储桶和名称都正确,只需确保将适当的区域添加到您的凭据中。

我测试了仅从 s3 读取而不在凭据中包含区域的情况,并且我能够毫无问题地列出存储桶中的对象。我认为这很有效,因为 s3 应该与区域无关。但是,由于 Textract 是特定于区域的,因此在使用 Textract 从 s3 存储桶中获取数据时,您必须在凭据中定义区域。

我知道几个月前有人问过这个问题,但我希望这能为将来面临这个问题的其他人提供一些启示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2019-08-17
    • 2020-07-30
    • 2021-08-22
    • 2021-09-20
    • 2019-06-06
    相关资源
    最近更新 更多