我正在使用python-docx创建文档。我想把这个文件保存到AWS S3。目前我的做法是,我创建一个.docx文件并使用document.save('filename.docx')
将其保存在本地。然后使用s3.meta.client.upload_file('/path/to/file/filename.docx', bucket, 'filename.docx')
将其保存到S3。有没有办法直接将.docx文件保存到AWS S3而不用先保存在本地?
我正在使用python-docx创建文档。我想把这个文件保存到AWS S3。目前我的做法是,我创建一个.docx文件并使用document.save('filename.docx')
将其保存在本地。然后使用s3.meta.client.upload_file('/path/to/file/filename.docx', bucket, 'filename.docx')
将其保存到S3。有没有办法直接将.docx文件保存到AWS S3而不用先保存在本地?
是的,你可以。就像@ewong建议的那样,下面是一段示例代码片段:
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')
client.upload_fileobj()
,但不确定是否可以在document
上使用。 - ewokx