TLDR; чтение с помощью моих AWS лямбда doc
, docx
файлов, которые хранятся на S3.
На моей локальной машине я просто использую textract.process(file_path)
для чтения файлов do c и docx.
Таким образом, интуитивно понятный способ сделать то же самое на лямбде - это загрузить файл из s3 в локальное хранилище (tmp
) на лямбде, а затем обработать файлы tmp
, как я делаю на своем локальном компьютере. .
Это не рентабельно ...
Есть ли способ сделать конвейер из объекта S3 прямо в некоторый синтаксический анализатор, такой как textract
, который просто преобразует doc
/ docx
файлы в читаемый объект, такой как string
?
Мой код для чтения файлов, таких как txt.
import boto3
print('Loading function')
def lambda_handler(event, context):
try: # Read s3 file
bucket_name = "appsresults"
download_path = 'Folder1/file1.txt'
filename = download_path
s3 = boto3.resource('s3')
content_object = s3.Object(bucket_name, filename)
file_content = content_object.get()['Body'].read().decode('utf-8')
print(file_content)
except Exception as e:
print("Couldnt read the file from s3 because:\n {0}".format(e))
return event # return event