我正在寻找如何使用gRPC实现文件下载功能的方法,但我在文档中找不到如何做到这一点。
执行此操作的最佳方式是什么?我想要有一个保存文件的gRPC服务器和一个从gRPC请求某些东西的gRPC客户端。
我看过Java中的示例,但想不出如何做到这一点的方法。我今天才开始读gRPC。
发布于 2018-03-22 22:13:41
您必须将特定的message定义为数据容器,并且必须使用stream将其分块传输到客户端。
proto消息和RPC服务的示例:
message DataChunk {
bytes data = 1;
}
rpc DownloadProductImage(DownloadProductImageRequest) returns(stream DataChunk){}在java中,您可以使用BufferedInputStream将资源流式传输到客户端。
发布于 2018-03-22 02:52:50
有几种可能的方法。
如果文件大小足够小,则可以使用单个字符串字段定义一个原型文件,并将整个文本内容转储到该字段中。
如果您的文件太大而无法执行此操作,则可能需要将文件分块并使用流式API逐块发送文件块。
下面是一个很好的gRPC入门指南。
发布于 2018-12-06 06:08:33
我采用了来自db80的工作示例,并创建了一个带有完整示例的PR:https://github.com/grpc/grpc-java/pull/5126
希望他们能合并这一点,然后每个人都能有一个GRPC的通用用例的工作示例。
https://stackoverflow.com/questions/49312554
复制相似问题