如何使用 Python 为 ODATA 服务传输/分块数据

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

我有一个正在运行的 Flask ODATA API 服务,我可以成功地将数据导入到 Excel 或其他可以导入 ODATA Feed 的平台。

但是,我目前正在将上述 API 迁移到 Google Cloud Functions,但它们对 HTTP/1 请求和响应的大小限制为 32mb。

我一直在阅读不同库的在线文档,如 json-stream 和 Flask Streaming Contents,但是我仍然无法理解如何将特定块分区或附加到响应中,并使程序(excel、powerbi 等)理解如何预计 X 数量的块

这就是我目前的设置方式:

    results = df.to_dict('records')
    results_dict = {}
    results_dict["@odata.context"] = f"{DOMAIN}odataservice/{category}/$metadata#{object_method}"
    results_dict["value"] = results
    response = jsonify(results_dict)
    response.headers["Content-Type"] = "application/json; odata.metadata=minimal"
    response.headers["OData-Version"] = "4.0"
    response.headers["Vary"] = "Accept-Encoding"
    response.headers["Pragma"] = "no-cache"
    response.headers["Expires"] = "-1"
    response.headers["Cache-Control"] = "no-cache"
    return response

如有任何见解、解释或帮助,我们将不胜感激!

提前致谢,

python google-cloud-functions odata httpresponse http-1.1
1个回答
0
投票

基于本文档中的 Cloud Functions 资源限制

配额 限制(第一代) 极限(第二代)
最大未压缩 HTTP 请求大小 10MB 32MB
最大未压缩 HTTP 响应大小 10MB 10MB 用于流式响应。 32MB 用于非流式响应。

区域范围是每个项目的,每个项目都有自己的限制。此外,没有增加配额的选项。

我建议检查以下内容以克服限制:

请注意,Cloud Functions 第二代是基于 Cloud Run 和 Eventarc 构建的,因此上述步骤应该类似地工作。

© www.soinside.com 2019 - 2024. All rights reserved.