Files
full/module/base/cloud/proto/disk.proto

123 lines
3.7 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package cloud;
option go_package = "bsm/full/module/base/cloud/pb;cloud";
import "module/base/cloud/proto/const.proto";
// 云盘目录服务
service Disk {
// 创建目录
rpc CreateDir(CreateDirRequest) returns (blocks.StatusReply);
// 获取目录详情
rpc GetDir(blocks.IdentRequest) returns (CloudDiskDirItem);
// 更新目录
rpc UpdateDir(CloudDiskDirItem) returns (blocks.StatusReply);
// 删除目录
rpc DeleteDir(blocks.IdentRequest) returns (blocks.StatusReply);
// 获取目录列表
rpc ListDirs(blocks.FetchRequest) returns (ListDirsResponse);
// 获取目录树
rpc GetDirTree(blocks.IdentRequest) returns (CloudDiskDirItem);
// 移动目录
rpc MoveDir(MoveDirRequest) returns (blocks.StatusReply);
// 上传文件
rpc UploadFile(CloudDiskFileRequest) returns (blocks.StatusReply);
// 获取文件详情
rpc GetFile(blocks.IdentRequest) returns (CloudDiskFileItem);
// 更新文件
rpc UpdateFile(CloudDiskFileItem) returns (blocks.StatusReply);
// 删除文件
rpc DeleteFile(blocks.IdentRequest) returns (blocks.StatusReply);
// 获取文件列表
rpc ListFiles(blocks.FetchRequest) returns (ListFilesResponse);
// 移动文件
rpc MoveFile(MoveFileRequest) returns (blocks.StatusReply);
// 复制文件
rpc CopyFile(CopyFileRequest) returns (blocks.StatusReply);
// 搜索文件
rpc SearchFiles(blocks.FetchRequest) returns (ListFilesResponse);
}
message CreateDirRequest {
uint64 cloud_id = 1;
string cloud_identity = 2;
uint64 parent_id = 3; // 支持嵌套目录
string name = 4; // 目录名称
string path = 5; // 完整路径
}
// 请求消息定义
message ListDirsResponse {
repeated CloudDiskDirItem dirs = 1;
int64 total = 2;
}
// 云盘目录模型
message CloudDiskDirItem {
uint64 id = 1;
string identity = 2;
uint64 parent_id = 3; // 支持嵌套目录
string name = 4; // 目录名称
string path = 5; // 完整路径
string created_at = 6;
string updated_at = 7;
// 自关联
CloudDiskDirItem parent = 8; // 父级目录
repeated CloudDiskDirItem subdirectories = 9; // 子级目录
repeated CloudDiskFileItem files = 10; // 文件
}
message MoveDirRequest {
uint64 id = 1;
uint64 new_parent_id = 2;
}
message ListFilesResponse {
repeated CloudDiskFileItem files = 1;
int64 total = 2;
}
message MoveFileRequest {
uint64 id = 1;
uint64 new_directory_id = 2;
}
message CopyFileRequest {
uint64 id = 1;
uint64 target_directory_id = 2;
string new_name = 3;
}
message CloudDiskFileRequest {
uint64 cloud_id = 1;
string cloud_identity = 2;
uint64 directory_id = 3; // 文件所属目录
string name = 4; // 文件名
string original_name = 5; // 原始文件名
int64 size = 6; // 文件大小 (bytes)
string mime_type = 7; // 文件类型
string storage_path = 8; // 实际存储路径
string hash = 9; // 文件哈希,用于去重
}
// 云盘文件
message CloudDiskFileItem {
uint64 id = 1;
string identity = 2;
uint64 directory_id = 3; // 文件所属目录
string name = 4; // 文件名
string original_name = 5; // 原始文件名
int64 size = 6; // 文件大小 (bytes)
string mime_type = 7; // 文件类型
string storage_path = 8; // 实际存储路径
string hash = 9; // 文件哈希,用于去重
string created_at = 10;
string updated_at = 11;
// 关联关系
CloudDiskDirItem directory = 12; // 文件所属目录
}