繁体   English   中英

使用 gRPC 传输文件

[英]file transfer using gRPC

使用 gRPC 和协议缓冲区将文件或图像从一个进程传输到另一个进程的标准方法是什么? 文件大小为 1MB 到 6MB。

基本上我想知道如何为python、C++和golang实现发送者/接收者代码对

http://github.com/johanbrandhorst/chunker

这是迄今为止我为 golang 找到的最接近的。 我在想它是否可以扩展到python和c++。 首选具有较少依赖性的更通用方法。

我正在创建多服务以通过 IPC 消息传递交换图像 btw 机器/进程。 另一种选择是使用共享内存。 我不确定Redis是否可以存储图像

我以前没有这样做过,但我认为这归结为协议缓冲区语言支持的类型。

我的理解是您可以使用bytes类型,因为它可能包含任意字节序列 在存储内容之前对其进行编码、分配并“发送”!

在这里查看标量类型。

另一种方法是将文件存储在所涉及的“服务”可以读取的位置——如果其中某些服务需要,也可以写入。 然后向“感兴趣的”服务发送一条 gRPC 消息,其中包含访问(或使用)相关文件所需的信息。

对于小规模文件(例如,小于 1 MiB),将整个文件放入单个消息(作为bytes )非常简单。 对于较大的文件,将文件分块并使用流是很自然的; 请参阅我对类似问题的回答

据我所知,使用协议缓冲区发送大于 1MB 的文件可能不是最好的方法。 通过套接字通过字节字符串逐块发送文件是更好的方法。

如何通过套接字发送“块”中的文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM