【问题标题】:How to stream an image from Python to C++ using Apache Thrift如何使用 Apache Thrift 将图像从 Python 流式传输到 C++
【发布时间】:2014-12-31 14:26:00
【问题描述】:

如何使用 Apache Thrift 流式传输文件(图像)? 我搜索了很多关于 Thrift 的内容,但没有找到任何关于它的写得很好的文档。为什么 Facebook 在没有文档的情况下开源了这个项目?

【问题讨论】:

  • "没有找到任何写得很好的文档" - thrift.apache,org/docsthis answer 不符合您的需要? “为什么 Facebook 在没有文档的情况下开源了这个项目” - They clearly didn't。可能是 Google 索引已过时,因此您无法找到这些链接?
  • 我的意思是 API 文档列出的类和方法
  • 教程和测试服务器/客户端对在解释 Thrift 方面做得比任何 API 类列表都做得更好。我也强烈推荐Randy's forthcoming Thrift book,已经可以通过 MEAP 获得。更多信息在这里stackoverflow.com/questions/20653240/… - 顺便说一句,上面的链接之一不正确,它是thrift.apache.org/docs
  • 感谢@JensG,由于我是网络应用程序的新手,我正在寻找更详细的使用 Thrift 的教程。

标签: c++ thrift cpp-netlib


【解决方案1】:

我建议的方式是设置您的服务以分块传送数据,如下所示:

struct DataChunk {
  1 : binary data
  2 : bool haveMoreData
}

service {
  DataChunk  GetChunk( 1 : string resource, 2: i32 offset, 3: i32 size)
}

size 限制为某个合理的值(需要在服务器端检查)似乎是个好主意,或者完全删除size 参数并始终将固定的、预定义大小的块传递给规避客户要求非常大的数据块。

注意整个流程需要遵循拉取模式,没有内置推送功能。但是,您仍然可以进行推送,您只需要在客户端运行 Thrift 服务器并传递必要的连接信息。虽然这并不适用于所有场景(尤其是传输),但在可能的情况下它是一个完全有效的解决方案。

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2022-06-23
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多