Есть ли способ автоматизировать этот процесс с помощью Lambda, чтобы получить файл из S3 без необходимости сохранять его во временном каталоге?
Если вы спрашиваете о изменение содержимого объекта S3 , тогда ответ отрицательный, это невозможно, потому что S3 не поддерживает такого рода операции. Единственное, что вы можете сделать, это перезаписать весь объект (ie, а не только его части).
Если вы спрашиваете о перезаписи объекта S3 новым содержимым , тогда да, это возможно сделать "без необходимости сохранять его во временную директорию", если вы делаете это, например, в памяти.
Загрузить объект из S3, не записывая его в хранилище, внесите изменения в память и повторно загрузите ее в S3. Если размер файла слишком велик для полного хранения в памяти, вы также можете сделать это в потоковом режиме (т.е. инициировать загрузку, для каждого загружаемого фрагмента вы вносите необходимые изменения и загружаете измененный фрагмент с помощью многокомпонентной загрузки. , очистите память, повторите и т.д. Это означает, что после обновления объекта при последующих чтениях может по-прежнему загружаться предыдущая версия. Если все, что потребляет файл, не может правильно с этим справиться, вам, вероятно, понадобится другой подход (т. Е. Не перезаписывать, а записывать новый объект с новым ключом и отправлять этот новый ключ потребителю; или просто используйте система хранения, которая поддерживает строгую согласованность, например DynamoDB).