如何使用ApacheThrift将图像从Python流式传输到C++

How to stream an image from Python to C++ using Apache Thrift

本文关键字:传输 C++ Python 何使用 ApacheThrift 图像      更新时间:2023-10-16

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

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

struct DataChunk {
  1 : binary data
  2 : bool haveMoreData
}
service {
  DataChunk  GetChunk( 1 : string resource, 2: i32 offset, 3: i32 size)
}

size限制为某个合理的值(需要在服务器端进行检查),或者完全删除size参数,并始终提供固定的预定义大小的块,以避免客户端要求超大的数据块,这似乎是一个好主意。

请注意,整个过程需要遵循拉模式,没有内置的推送功能。然而,你仍然可以推送,你只需要在客户端运行Thrift服务器并传递必要的连接信息。尽管这不会在所有场景中都有效(尤其是传输),但在可能的情况下,这是一个完全有效的解决方案。