我正在尝试使用gRPC传输文件。我可以使用gRPC流发送破碎的数据。我正在寻找一种也可以与数据一起传输文件名的方法。我敢肯定有一个明显的解决方案我不见了。但我可以想到以下几种方法
- 向每个块发送文件名,这是重新传输相同数据的明显缺点。 .proto文件将类似于
service KeyValueStore {
rpc upload (stream FileData) returns (UploadStatus) {}
}
message FileData {
string filename = 1;
bytes data = 2;
}
- 将文件名作为第一个块发送。接收者需要知道这种编码。
但是我正在寻找一种非骇客的解决方案。
我希望有一个类似的解决方案
service KeyValueStore {
rpc upload (FileName,stream FileData) returns (UploadStatus) {}
}
但这是不可能的,并且根据答案here
通常,是否有一种更干净的方法来调用包含常规参数和流参数的组合的过程?或达到相同的效果?