首页 > 解决方案 > 第二次上传excel文件在S3中使用python生成一个空的excel文件

问题描述

import boto3

def upload(excel, bucket, file_name):
    S3_CLIENT = boto3.client("s3")
    fp = pathlib.Path(f"/tmp/{file_name}")
    try:
        fp.write_bytes(excel.get_workbook_data())
        S3_CLIENT.upload_file(str(fp.absolute()), bucket, 'file_key_in_s3', ExtraArgs={"ContentType": 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'})
    finally:
        fp.unlink()

这是我上传到 S3 的方法。这是一个附加到 API Gateway 的 lambda。因此,当我第一次点击它时,它会生成一个正确的 excel 文件,但是当我第二次点击它时,它会生成一个空的 excel 电子表格并将其上传到 S3。

get_workbook_data是一种获取excel中信息的方法

PS:如果我在 5 分钟后再次使用相同的方法,那么我会看到一个正确的 excel 文件。

有没有人遇到同样的问题?有人可以帮我吗?

我曾尝试在邮递员中使用差异标头但徒劳无功

标签: pythonamazon-s3aws-api-gateway

解决方案


推荐阅读