在这个例子中,我们将使用gRPC客户端向服务器传输一个图像文件。我们将使用客户端流技术,所以文件将以小块的形式被传送。一旦所有的小块被传送到服务器,它将被保存。服务器将把它的唯一名称返回给客户端。
我在代码中硬编码了一些变量,但你应该使用环境变量。另外,它也是可以改进的。我试图让它尽可能的简短。
协议缓冲区
运行protoc --go_out=plugins=grpc:. --go_opt=paths=source_relative pkg/proto/*.proto 命令来生成编译文件。
// pkg/proto/upload.proto
客户端
main.go
package main
upload.go
package upload
服务器
main.go
package main
upload.go
package upload
文件
package storage
存储
package storage
测试
// Run server first
如果你检查tmp 文件夹,some-unique-name.png 文件现在应该在那里了。