¿Alguna forma de escribir archivos DIRECTAMENTE en S3 usando boto3?

Escribí una secuencia de comandos de Python para procesar archivos muy grandes (pocos TB en total), que ejecutaré en una instancia de EC2. Después, quiero almacenar los archivos procesados ​​en un cubo S3. Actualmente, mi script primero guarda los datos en el disco y luego los carga en S3. Desafortunadamente, esto será bastante costoso dado el tiempo adicional que se tarda en esperar a que la instancia escriba primero en el disco y luego la cargue.

¿Hay alguna forma de usar boto3 para escribir archivos directamente en un contenedor S3?

Edición: para aclarar mi pregunta, me pregunto si tengo un objeto en la memoria y lo escribo directamente en S3 sin guardar primero el objeto en el disco.

Puedes usar put_object para esto. Simplemente pase en su archivo objeto como cuerpo.

Por ejemplo:

import boto3 client = boto3.client('s3') response = client.put_object( Bucket='your-s3-bucket-name', Body='bytes or seekable file-like object', Key='Object key for which the PUT operation was initiated' ) 

Está trabajando con el método S3 put_object :

 key = 'filename' response = s3.put_object(Bucket='Bucket_Name', Body=json_data, Key=key)