40 lines
904 B
Plaintext
40 lines
904 B
Plaintext
syntax = "v1"
|
|
|
|
info (
|
|
title: "文件服务"
|
|
desc: "处理文件上传与获取"
|
|
author: "Asadz"
|
|
version: "v1"
|
|
)
|
|
|
|
type (
|
|
// 上传请求参数(File文件流在Handler中通过 r.FormFile 获取)
|
|
UploadReq {
|
|
Type string `form:"type,options=avatar|chat|post|verification|dispute"` // 文件类型限制
|
|
}
|
|
// 上传响应
|
|
UploadResp {
|
|
Url string `json:"url"` // 返回 CDN 地址或访问地址
|
|
}
|
|
// 获取文件请求(用于私有文件或代理访问)
|
|
GetFileReq {
|
|
FileId string `path:"fileId"`
|
|
}
|
|
)
|
|
|
|
@server (
|
|
prefix: /api/v1
|
|
group: file
|
|
middleware: FileSizeLimit // 建议添加中间件限制文件大小
|
|
)
|
|
service file-api {
|
|
@doc "文件上传接口"
|
|
@handler Upload
|
|
post /upload (UploadReq) returns (UploadResp)
|
|
|
|
@doc "文件获取接口 (如果是私有文件,通过此接口获取或重定向)"
|
|
@handler GetFile
|
|
get /files/:fileId (GetFileReq)
|
|
}
|
|
|