gRPC Java文件下载示例

Mar*_*ada 4 grpc grpc-java

我正在寻找一种如何使用gRPC实现文件下载功能的方法,但我在文档中找不到这是如何完成的.

这样做的最佳方式是什么?我想拥有一个保存文件的gRPC服务器和一个gRPC客户端来请求来自gRPC的东西.

我查看了Java中的示例,但无法找到如何执行此操作的方法.我今天刚开始阅读有关gRPC的内容.

db8*_*b80 8

您必须将特定的message数据容器定义为数据容器,并且必须使用a将其传输到客户端stream.

proto消息和RPC服务的示例:

message DataChunk {
   bytes data = 1;
}

rpc DownloadProductImage(DownloadProductImageRequest) returns(stream DataChunk){}
Run Code Online (Sandbox Code Playgroud)

在java中,您可以使用BufferedInputStream流将资源流式传输到客户端.

代码示例服务器端.

代码示例客户端.


小智 0

有几种可能的方法。

如果您的文件足够小,您可以使用单个字符串字段定义一个原始文件,并将整个文本内容转储到该字段中。

如果您的文件太大而无法执行此操作,您可能需要对文件进行分块并使用流 API 逐块发送文件。

以下是 gRPC 入门的良好指南。

https://grpc.io/docs/tutorials/basic/java.html