Files
ocean/rpc/file.proto
konjacpotato cd4079c24d
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 30s
file: add taskqueue worker process image thumbnail
2025-06-02 22:09:53 +08:00

75 lines
2.1 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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; // 是否删除成功
}