Мое намерение - сохранить большое изображение на моем сервере S3, а затем получить лямбда-функцию для чтения / обработки файла и сохранения полученных результатов. Я использую пакет под названием python-bioformats для работы с проприетарным файлом изображения (который по сути представляет собой целую кучу tiff-файлов, сложенных вместе). Когда я использую
def lambda_handler(event, context):
import boto3
key = event['Records'][0]['s3']['object']['key'].encode("utf-8")
bucket = 'bucketname'
s3 = boto3.resource('s3')
imageobj = s3.Object(bucket, key).get()['Body'].read()
bioformats.get_omexml_metadata(imageobj)
У меня такое ощущение, что лямбда-функция пытается загрузить весь файл (5 ГБ) при создании imageobj. Есть ли способ, которым я могу просто заставить вторую функцию (которая принимает путь к файлу в качестве аргумента) ссылаться на объект s3, как путь к файлу? Я также хотел бы не раскрывать корзину / объект s3 публично, поэтому выполнение этой серверной стороны было бы идеальным.