upload.proto 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. syntax = "proto3";
  2. package live.liveadmin.v1;
  3. option go_package = "v1";
  4. import "github.com/gogo/protobuf/gogoproto/gogo.proto";
  5. service Token {
  6. // Request for a token for upload.
  7. // `method:"POST" internal:"true"`
  8. rpc new (NewTokenReq) returns (NewTokenResp);
  9. }
  10. service Upload {
  11. // `method:"POST" content-type:"multipart/form-data" midware:"cors,guest"`
  12. rpc file (UploadFileReq) returns (UploadFileResp);
  13. }
  14. message NewTokenReq {
  15. // 上传到 BFS 的 bucket
  16. string bucket = 1 [(gogoproto.moretags) = 'form:"bucket" validate:"required"'];
  17. // 上传到指定的 BFS 目录(可以用来区分业务)
  18. string dir = 2 [(gogoproto.moretags) = 'form:"dir"'];
  19. // 操作人(mlive通过dashboard授权获取到的操作人)
  20. string operator = 3 [(gogoproto.moretags) = 'form:"operator" validate:"required"'];
  21. }
  22. message NewTokenResp {
  23. // 授予的 token
  24. string token = 1 [(gogoproto.jsontag) = "token"];
  25. }
  26. // The file/data part must use Request.FormFile() to retrieve manually.
  27. message UploadFileReq {
  28. // 上传到 BFS 的 bucket
  29. string bucket = 1 [(gogoproto.moretags) = 'form:"bucket" validate:"required"'];
  30. // 上传到指定的 BFS 目录(可以用来区分业务)
  31. string dir = 2 [(gogoproto.moretags) = 'form:"dir"'];
  32. // 上传的到bfs的文件名(存储在bfs的文件名,不传bfs会根据文件的sha1值生成并返回)
  33. string filename = 3 [(gogoproto.moretags) = 'form:"file_name"'];
  34. // 上传的文件的类型(不指定时会自动检测文件类型)
  35. string contentType = 4 [(gogoproto.moretags) = 'form:"content_type"'];
  36. // 图片水印key,添加图片水印需要上传该参数, 新业务需要提前向bfs申请
  37. string wmKey = 5 [(gogoproto.moretags) = 'form:"wm_key"'];
  38. // 文字水印,限制不超过20个字符
  39. string wmText = 6 [(gogoproto.moretags) = 'form:"wm_text"'];
  40. // 水印位置右下角 到原图右下角 水平距离,默认10px
  41. uint32 wmPaddingX = 7 [(gogoproto.moretags) = 'form:"wm_padding_x"'];
  42. // 水印位置右下角 到原图右下角 垂直距离,默认10px
  43. uint32 wmPaddingY = 8 [(gogoproto.moretags) = 'form:"wm_padding_y"'];
  44. // 水印宽度占原图高度的比例(0,1) (只支持按照宽度压缩),默认值: 0.035
  45. double wmScale = 9 [(gogoproto.moretags) = 'form:"wm_scale"'];
  46. // 上传 Token,通过 obtainToken 接口获取
  47. string token = 10 [(gogoproto.moretags) = 'form:"token" validate:"required"'];
  48. }
  49. message UploadFileResp {
  50. string url = 1 [(gogoproto.jsontag) = "url"];
  51. }