syntax = "proto3"; package file; option go_package = "./file"; // 文件服务 - 上传图片、获取地址、删除文件等 service File { // 上传文件(图片/头像/壁纸等) rpc Upload (UploadRequest) returns (UploadResponse); // 获取文件访问链接(带签名,防盗链) rpc GetFileUrl (GetFileUrlRequest) returns (GetFileUrlResponse); // 删除文件 rpc Delete (DeleteRequest) returns (DeleteResponse); } // 上传文件请求 message UploadRequest { string filename = 1; // 文件名(建议客户端传原始名,服务端会生成唯一名) string content_type = 2; // 文件类型(如 image/jpeg) bytes content = 3; // 文件二进制内容(base64 编码由客户端完成) string folder = 4; // 可选,文件夹或分类路径,支持多级,如 "avatars"、"wallpapers/animals" string bucket = 5; // bucket name } // 上传响应 message UploadResponse { string file_id = 1; // 文件唯一 ID(或路径) string url = 2; // 可访问 URL(带 CDN 或签名) } // 获取访问链接请求 message GetFileUrlRequest { string file_id = 1; // 文件唯一 ID 或路径 } // 获取访问链接响应 message GetFileUrlResponse { string url = 1; // 可访问链接 } // 删除文件请求 message DeleteRequest { string file_id = 1; // 要删除的文件 ID } // 删除文件响应 message DeleteResponse { bool success = 1; // 是否删除成功 }