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; // 文件所属目录 }