python - 第二次上传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 文件。
有没有人遇到同样的问题?有人可以帮我吗?
我曾尝试在邮递员中使用差异标头但徒劳无功
解决方案
推荐阅读
- git - git 尝试克隆最后一个点的 repo 时出错
- vuetify.js - 在右侧垂直对齐 vuetify 选项卡
- java - 使用 Spring ConfigurationProperties 绑定到 Enum 和 List 属性的 Map
- xaml - 错误 MSB4095:如何在 Visual Studio 项目属性对话框中正确添加其他设置?
- ios - 在 epoch 时间戳之间从 Core Data 中获取数据不一致
- javascript - 必须单击两次才能在 JavaScript 中触发事件
- c - 为什么这个错误看起来像它有一个模式?二分查找 C
- javascript - 有没有办法在 node.js 中读取和写入二维数组到 .db 或 .txt 文件
- python - Pandas read_csv PermissionError: [Errno 1] Operation not allowed: Jupyter Notebook
- ios - SwiftUI 将 vstack 推送到屏幕的剩余长度