我正在做一个项目,我想在其中公开一个 API,该 API 将读取一个大文件并发送该文件作为响应。
由于文件可以很大,最好以块的形式发送文件,这样对系统的内存压力不会太大。
我评估了 2 个选项:HTTP-1.1 支持的分块传输(https://en.m.wikipedia.org/wiki/Chunked_transfer_encoding)和 grpc 的服务器端流。
在 grpc 方法中,客户端通过 rpc 请求,而服务器将通过 grpc 通道流式传输字节,并在完成后关闭相同的。
我的生态系统可以同时支持,客户端也支持 grpc。
您能否建议哪种选择更好,两种方法的优缺点是什么。