通过gRPC接口上传文件的优点
使用gRPC上传文件有许多优点:
- 实现简单。就是简单地写个接口,而且rprotobuf 定义好了参数,Server端与Client对接方便
- 无须部署额外软件。生产环境不需要部署额外软件,如WEB服务器,或第3方软件(如RabbitMQ)。
- 支持超大文件传输。 分块传输,可重传,速度快。
- 支持加密,还可以使用SSL/TLS加密,token验证等。
本文内容概要
- 使用单向通信方式文件
- 使用流式通信上传大文件
单向通信方式上传文件
这种方式编程简单,适合文件不大的应用场景。实现过程如下
定义 protobuf 接口文件
新建1个项目目录,创建uploadfile.proto文件
syntax="proto3";
message UploadRequest {
string file_name = 1;
int32 file_size = 2;
bytes content =3;
}
message UploadResponse {
string file_name =1;
int32 file_size = 2;
}
service UploadFiles {
rpc UploadFile (UploadRequest) returns (UploadResponse);
}
编译proto文件
python -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. uploadfile.proto
生成如下文件:
uploadfile_pb2.py
uploadfile_pb2_grpc.py
服务端代码
提供1个 UploadFile() 接口函数,供客户端调用
import grpc
from concurrent.futures import ThreadPoolExecutor
import uploadfile_pb2
import uploadfile_pb2_grpc
import os
import timeit
class uploadfiles_service(uploadfile_pb2_grpc.UploadFilesServicer):

本文介绍如何使用gRPC实现文件上传功能,包括简单的单向通信方式及针对大文件的流式分块上传方法。文中提供了详细的步骤说明及代码示例。

820

被折叠的 条评论
为什么被折叠?



