35 lines
858 B
Protocol Buffer
35 lines
858 B
Protocol Buffer
syntax = "proto3";
|
|
|
|
package file;
|
|
option go_package = "./pb";
|
|
|
|
// 文件上传的元数据信息
|
|
message UploadFileMetadataReq {
|
|
string fileName = 1;
|
|
int64 fileSize = 2;
|
|
string fileType = 3; // avatar, chat, etc.
|
|
string userId = 4;
|
|
bytes fileData = 5; // 如果文件很小可以直接传,大文件建议API层直接传S3,RPC只传元数据
|
|
}
|
|
|
|
message UploadFileResp {
|
|
string url = 1;
|
|
string fileId = 2;
|
|
}
|
|
|
|
message GetFileUrlReq {
|
|
string fileId = 1;
|
|
string userId = 2; // 用于鉴权
|
|
}
|
|
|
|
message GetFileUrlResp {
|
|
string url = 1; // 可能是带签名的临时 URL
|
|
}
|
|
|
|
service FileService {
|
|
// 简单上传(适合小文件,或保存元数据)
|
|
rpc Upload(UploadFileMetadataReq) returns (UploadFileResp);
|
|
// 获取文件访问链接(处理私有文件的鉴权)
|
|
rpc GetFileUrl(GetFileUrlReq) returns (GetFileUrlResp);
|
|
}
|