123 lines
3.4 KiB
Protocol Buffer
123 lines
3.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
package cloud;
|
|
option go_package = "./cloud";
|
|
|
|
// 全都需要登录
|
|
service Method{
|
|
// 本级目录列表
|
|
rpc List(ListRequest) returns (ListResponse){}
|
|
// 目录树
|
|
rpc DirTree(DirTreeRequest) returns (DirTreeResponse){}
|
|
// 本级及子级递归列表
|
|
rpc Download(DownloadRequest) returns (ListResponse){}
|
|
// 创建文件/文件夹
|
|
rpc Make(MakeRequest) returns (MakeResponse){}
|
|
// 修改文件/文件夹名称
|
|
rpc Rename(RenameRequest) returns (Empty){}
|
|
// 移除文件/文件夹及其子级递归列表
|
|
rpc Remove(RemoveRequest) returns (Empty){}
|
|
// 移动文件/文件夹及其子级递归列表
|
|
rpc Move(MoveRequest) returns (Empty){}
|
|
// 复制文件/文件夹及其子级递归列表
|
|
rpc Copy(CopyRequest) returns (Empty){}
|
|
// 分享文件/文件夹及其子级递归列表
|
|
rpc Share(ShareRequest) returns (ShareResponse){}
|
|
// 解析分享内容
|
|
rpc ParseShare(ParseShareRequest) returns (ParseShareResponse){}
|
|
|
|
}
|
|
|
|
message Empty{}
|
|
// authorization_identity 用户识别identity 由上下文传递
|
|
// user_identity 用于鉴权
|
|
message ListRequest {
|
|
string identity = 1; // 文件夹唯一标识,获取顶级的不传
|
|
string name =2; //根据文件名称模糊查找,当该字段不为空时identity的限定失效
|
|
}
|
|
|
|
message ListResponse {
|
|
repeated UserFile list = 1;
|
|
}
|
|
|
|
|
|
message DirTreeRequest {
|
|
string identity = 1; // 文件夹唯一标识,获取顶级的不传
|
|
}
|
|
|
|
message DirTreeResponse {
|
|
repeated UserFile list = 1; // 只返回文件夹
|
|
}
|
|
|
|
message DownloadRequest {
|
|
repeated string list = 1; // identity列表,必传
|
|
}
|
|
|
|
message UserFile {
|
|
string identity =1; //唯一标识
|
|
string name =2;//文件/文件夹名称
|
|
string ext = 3;//后缀,文件夹时为空
|
|
repeated string parent = 4; // 父级文件夹序列,按文件名称查询时候生效
|
|
File file = 5;//文件信息
|
|
string created_at = 7;
|
|
string updated_at = 8;
|
|
repeated UserFile children = 9;//子文件夹
|
|
}
|
|
|
|
message File{
|
|
string identity =1; //唯一标识
|
|
string path = 2;//文件路径
|
|
int64 size = 3; // 文件大小,单位:B
|
|
}
|
|
|
|
message MakeRequest {
|
|
string name =1;//文件/文件夹名称,必传
|
|
string ext = 2;//后缀,文件夹传空即可
|
|
string parent_identity = 3;// 父文件夹标识,选填
|
|
int64 size = 4; // 文件大小,非文件夹时必传,单位:B
|
|
string hash = 5; // 文件hash值,非文件夹时必传
|
|
string path = 6;// 文件地址,非文件夹时必传
|
|
|
|
}
|
|
|
|
message MakeResponse {
|
|
string identity = 1;
|
|
}
|
|
|
|
// 同级下,名称必须唯一
|
|
message RenameRequest {
|
|
string identity = 1;//必传
|
|
string name =2;//文件/文件夹名称,必传
|
|
string ext = 3;//后缀,文件夹传空即可
|
|
}
|
|
|
|
message RemoveRequest {
|
|
repeated string list = 1; // identity列表
|
|
}
|
|
|
|
|
|
message MoveRequest {
|
|
repeated string list = 1; // identity列表
|
|
string target_identity = 2; // 目标文件夹标识,如果是顶级则不填
|
|
}
|
|
|
|
message CopyRequest {
|
|
repeated string list = 1; // identity列表
|
|
string target_identity = 3; // 目标文件夹标识,如果是顶级则不填
|
|
}
|
|
|
|
message ShareRequest {
|
|
repeated string list = 1; // identity列表
|
|
int64 days = 2;// 有效天数,默认永久
|
|
}
|
|
|
|
message ShareResponse {
|
|
string key = 1; // 解析分享内容关键key
|
|
}
|
|
|
|
message ParseShareRequest {
|
|
string key = 1; // 解析分享内容关键key
|
|
}
|
|
|
|
message ParseShareResponse {
|
|
repeated UserFile list = 1;
|
|
} |