仅在 AWS Lambda 上使用 openpyxl 时“中央目录的偏移量错误”

问题描述 投票:0回答:1

我正在使用 FastAPI 和

openpyxl
上传和解析 Excel 文件。它在我的本地计算机上运行良好,但是当我将 API 部署到 AWS Lambda 时,出现以下错误:“中央目录的偏移量错误”

其他帖子表明该文件已损坏,但在本地上传时工作正常。我正在使用相同的文件进行测试。

from openpyxl.reader.excel import load_workbook

def upload_report(file: UploadFile = File(...))

        contents = file.file.read()
        buffer = io.BytesIO(contents)
        wb = load_workbook(buffer, data_only=True)  # Error thrown here.

        ...

使用Python 3.12、fastapi 0.111.0和openpyxl 3.1.5

python aws-lambda fastapi openpyxl
1个回答
0
投票

问题与 AWS API Gateway 如何处理二进制数据有关,如本文中所述 使用 API Gateway 启用二进制支持

也就是说,它必须经过专门配置才能被接受,或者数据在管道中转换为 Base 64。

为多部分/表单数据内容配置 API 网关。

  1. 导航到 API 网关。
  2. 点击API设置
  3. 单击管理媒体类型
  4. 输入
    multipart/form-data
    ,然后单击 保存更改
  5. 单击资源
  6. 展开您的资源并选择 /{proxy}+
  7. 选择任何
  8. 单击方法请求,然后单击编辑
  9. 展开 HTTP 请求标头
  10. 添加以下两个标题:
    Accept
    Content-Type
  11. 单击保存
  12. 单击部署API
© www.soinside.com 2019 - 2024. All rights reserved.