Асинхронные операции AWS Textract – из внешнего хранения документов?

Вопрос или проблема

Друзья,
я создаю компонент, который извлекает документы по их содержимому. Поскольку есть многостраничные PDF-документы, насколько я понимаю, мне нужно использовать асинхронный метод «StartDocumentTextDetection». Этот метод требует, чтобы документ находился в бакете S3 в AWS? Верно? Все мои документы находятся во внешнем, не AWS, месте. Можем ли мы передать массив байтов внешнего документа в операции Textract? Пожалуйста, дайте знать.

Ответ или решение

Да, вы правы в том, что для работы с многопстраничными PDF-документами в рамках AWS Textract вы можете использовать асинхронный метод StartDocumentTextDetection. Однако, как вы правильно заметили, этот метод требует, чтобы документ находился в хранилище S3 AWS.

К сожалению, Textract не поддерживает передачу байтовых массивов (byte array) напрямую из внешних хранилищ или локальных файлов. Таким образом, вам необходимо сначала загрузить ваш документ в S3. Вот пошаговый процесс, который вы можете использовать:

  1. Загрузка документа в S3: Создайте бакет (если он еще не создан) в Amazon S3 и загрузите ваш документ (PDF или изображение) в этот бакет. Вы можете использовать AWS SDK для вашего программного языка для выполнения этой операции. Например, с помощью AWS SDK для Python (Boto3) вы можете загрузить файл следующим образом:

    import boto3
    
    s3_client = boto3.client('s3')
    bucket_name = 'ваш_идентификатор_бакета'
    file_name = 'ваш_файл.pdf'
    
    # Загрузка файла
    s3_client.upload_file(file_name, bucket_name, file_name)
  2. Вызов Textract: После того как ваш документ находится в S3, вы можете вызвать метод StartDocumentTextDetection, указав ARN (Amazon Resource Name) документа, который теперь хранится в S3:

    textract_client = boto3.client('textract')
    
    response = textract_client.start_document_text_detection(
       DocumentLocation={
           'S3Object': {
               'Bucket': bucket_name,
               'Name': file_name
           }
       }
    )
  3. Отслеживание статуса обработки: Запрос вернет вам JobId, который вы можете использовать для отслеживания статуса обработки. Вам нужно будет периодически проверять статус работы с помощью метода GetDocumentTextDetection, передавая JobId.

  4. Получение результатов: После того как работа будет завершена, вы сможете получить результаты, используя тот же метод GetDocumentTextDetection.

  5. Очистка: После завершения обработки, если вам больше не нужны загруженные файлы в S3, вы можете удалить их, чтобы избежать дополнительных расходов.

Таким образом, процесс предполагает, что вам нужно сначала перенести документы из внешнего источника в AWS S3, а затем взаимодействовать с Textract для обработки этих документов. Если вы будете использовать данный подход, у вас не возникнет проблем с извлечением текста из многопстраничных PDF-документов.

Оцените материал
Добавить комментарий

Капча загружается...