Estoy usando python-docx para crear un documento. Quiero guardar este archivo en AWS S3. Actualmente, lo que estoy haciendo es crear un archivo .docx y guardarlo localmente usando document.save('filename.docx') . Luego, use s3.meta.client.upload_file('/path/to/file/filename.docx', bucket, 'filename.docx') para guardarlo en S3. ¿Hay alguna forma de guardar el archivo .docx directamente en AWS S3 sin guardarlo localmente?
Sí tu puedes. Como sugirió @ewong, aquí hay un fragmento de código de muestra:
import boto3 from io import BytesIO from docx import Document s3 = boto3.client('s3') document = Document() # ... with BytesIO() as fileobj: document.save(fileobj) fileobj.seek(0) s3.upload_fileobj(fileobj, 'your-bucket-name', 'your/s3/key')