javascript/proto/cloud/cloud.proto

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;
}