我正在 Django REST 服务器上工作,它会进行一些计算。我将这些计算存储为 JSON,我想创建一个端点,该端点将根据这些 JSON 结果生成 .xlsx 文件并将其上传到 AWS S3,如下所示:
s3.meta.client.put_object(
Bucket = credentials['AWS_BUCKET_NAME'],
Key=file_path,
Body=file_content,
)
但是存在问题 - 我检查的用于生成 .xlsx 内容的每个库都在创建一个文件,但我不想这样做。有什么解决办法吗?
我知道我可以生成文件(例如使用“xlsxwriter”),提取内容并删除它,但这种方式似乎不是最好的:D
任何指导将不胜感激。谢谢你
正如 Tim Roberts 在评论中所说,我将
io.BytesIO
对象与 xlsxwriter 库一起使用,因为它在 Workbook 对象初始化时具有“in_memory”选项。
output = BytesIO()
workbook = xlsxwriter.Workbook(output, {"in_memory":True})
# After all manipulations with workbook
workbook.close()
output.seek(0)
# Uploading to AWS S3 using "boto3"
s3.meta.client.put_object(
Bucket=bucket_name,
Key=file_path,
Body=output,
)