无法从 S3 存储桶中检索已处理的文件

Not able to retrieve processed file from S3 Bucket

我是 AWS 新手,正在尝试使用他们的 OCR 服务 Textract API。 据我所知,我需要将文件上传到 S3 存储桶,然后 运行 对其进行 textract。

我打开了水桶和里面的文件:

我获得了权限:

但是当我 运行 我的代码出现错误时。

        import boto3
        import trp

        # Document
        s3BucketName = "textract-console-us-east-1-057eddde-3f44-45c5-9208-fec27f9f6420"
        documentName = "ok0001_prioridade01_x45f3.pdf"
]\[\[""
        # Amazon Textract client
        textract = boto3.client('textract',region_name="us-east-1",aws_access_key_id="xxxxxx",
                                aws_secret_access_key="xxxxxxxxx")

        # Call Amazon Textract
        response = textract.analyze_document(
            Document={
                'S3Object': {
                    'Bucket': s3BucketName,
                    'Name': documentName
                }
            },
            FeatureTypes=["TABLES"])

这是我得到的错误:

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

我错过了什么?我该如何解决?

Amazon Textract 目前支持 PNG、JPEG 和 PDF 格式。看起来您正在使用 PDF。

一旦有了有效的格式,就可以使用PythonS3API读取S3对象中对象的数据。读取对象后,可以将字节数组传递给 analyze_document 方法。查看如何将适用于 Python (Boto3) 的 AWS 开发工具包与 Amazon Textract 结合使用的完整示例 检测文档图像中的文本、表单和 table 元素。

https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/python/example_code/textract/textract_wrapper.py

尝试按照该代码示例查看您的问题是否已解决。

“你能提供一些清晰的参数吗运行ce”

我只是 运行 Java V2 示例,它工作得很好。在此示例中,我使用位于特定 Amazon S3 存储桶中的 PNG 文件。

以下是您需要的参数:

确保在 Python 中实现此功能时设置相同的参数。

您缺少 S3 访问策略,如果您想根据需要快速解决,您应该添加 AmazonS3ReadOnlyAccess 策略。

一个好的做法是应用最小权限访问原则,并在需要时继续授予访问权限。因此,我建议您创建一个特定的策略来访问您的 S3 存储桶 textract-console-us-east-1-057eddde-3f44-45c5-9208-fec27f9f6420,并且仅在 us-east-1 区域。