All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 30s
75 lines
2.1 KiB
Protocol Buffer
75 lines
2.1 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
package file;
|
||
|
||
option go_package = "./file";
|
||
|
||
enum ImageVersion {
|
||
original = 0;
|
||
thumbnail = 1; // 缩略图
|
||
preview = 2; // 预览图
|
||
all = 9; // 所有版本
|
||
}
|
||
|
||
// 文件服务 - 上传图片、获取地址、删除文件等
|
||
service File {
|
||
// 上传文件(图片/头像/壁纸等)
|
||
rpc Upload (UploadRequest) returns (UploadResponse);
|
||
|
||
// 获取文件访问链接(带签名,防盗链)
|
||
rpc GetFileUrl (GetFileUrlRequest) returns (GetFileUrlResponse);
|
||
|
||
// 删除文件
|
||
rpc Delete (DeleteRequest) returns (DeleteResponse);
|
||
|
||
// 异步生成图片版本接口
|
||
rpc GenerateImageVersions (GenerateImageVersionsRequest) returns (GenerateImageVersionsResponse);
|
||
}
|
||
|
||
// 生成图片版本请求
|
||
message GenerateImageVersionsRequest {
|
||
string file_id = 1; // 原始图片ID
|
||
repeated ImageVersion versions = 2; // 需要生成的版本
|
||
}
|
||
|
||
// 生成图片版本响应
|
||
message GenerateImageVersionsResponse {
|
||
string task_id = 1; // 异步任务ID
|
||
bool accepted = 2; // 任务是否被接受
|
||
}
|
||
|
||
// 上传文件请求
|
||
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; // 是否删除成功
|
||
}
|