syntax = "proto3"; package api_services.v1; option go_package = "filesaver/gen;genv1"; // @route_group: true // @base_url: /v1/file // @gen_to: ./services/controller/v1/file_controller.go service FileService { // @desc: 列表 // @author: Young Xu // @method: GET // @api: /list rpc List (FileServiceListRequest) returns (FileServiceListResponse); // @desc: 上传 // @author: Young Xu // @method: POST // @api: /upload rpc Upload (FileServiceUploadRequest) returns (FileServiceUploadResponse); // @desc: 删除 // @author: Young Xu // @method: DELETE // @api: /delete rpc Delete (FileServiceDeleteRequest) returns (FileServiceDeleteResponse); // @desc: 下载 // @author: Young Xu // @method: GET // @api: /download rpc Download (FileServiceDownloadRequest) returns (FileServiceDownloadResponse); } message FileServiceListRequest { string dirname = 1; // 目录 } message FileServiceListResponse { message Metadata { string domain = 1; // 域名 } message Item { string file_id = 1; // 文件ID string filename = 2; // 文件名 string file_size = 3; // 文件大小 string created_at = 4; // 上传时间 string dirname = 5; // 文件路径 bool is_directory = 6; // 是否是目录 } repeated Item items = 1; // 列表 Metadata metadata = 2; // 元数据 } message FileServiceUploadRequest {} message FileServiceUploadResponse {} message FileServiceDeleteRequest { string file_id = 1; // 文件ID string dirname = 2; // 文件夹 string filename = 3; // 文件名 } message FileServiceDeleteResponse {} message FileServiceDownloadRequest { string file_id = 1; // 文件ID string dirname = 2; // 文件夹 string filename = 3; // 文件名 } message FileServiceDownloadResponse {} // @route_group: true // @base_url: /v1/setting // @gen_to: ./services/controller/v1/setting_controller.go service SettingService { // @desc: 改变存储适配器 // @author: Young Xu // @method: POST // @api: /adapter rpc SettingServiceChangeAdapter (SettingServiceChangeAdapterReq) returns (SettingServiceChangeAdapterResp); // @desc: 改变存储适配器 // @author: Young Xu // @method: POST // @api: /cf_r2 rpc ConfigCloudFlareR2 (SettingServiceConfigCloudFlareR2Req) returns (SettingServiceConfigCloudFlareR2Resp); // @desc: 获取cloudflare r2配置 // @author: Young Xu // @method: GET // @api: /cf_r2 rpc GetCloudFlareR2 (SettingServiceGetCloudFlareR2Req) returns (SettingServiceGetCloudFlareR2Resp); // @desc: 获取适配器配置 // @author: Young Xu // @method: GET // @api: /adapter rpc GetAdapter (SettingServiceGetAdapterReq) returns (SettingServiceGetAdapterResp); } message SettingServiceChangeAdapterReq { string adapter = 1; } message SettingServiceChangeAdapterResp {} message SettingServiceConfigCloudFlareR2Req { string api_token = 1; string user_email = 2; string user_id = 3; string bucket = 4; string s3_api = 5; string domain = 6; string secret_id = 7; string secret_key = 8; } message SettingServiceConfigCloudFlareR2Resp {} message SettingServiceGetCloudFlareR2Req {} message SettingServiceGetCloudFlareR2Resp { string api_token = 1; string user_email = 2; string user_id = 3; string bucket = 4; string s3_api = 5; string domain = 6; string secret_id = 7; string secret_key = 8; } message SettingServiceGetAdapterReq {} message SettingServiceGetAdapterResp { string adapter = 1; }