52 lines
1.9 KiB
Plaintext
52 lines
1.9 KiB
Plaintext
syntax = "v1"
|
||
|
||
// 圖片上傳請求(使用 base64)
|
||
type UploadImgReq {
|
||
Authorization
|
||
Content string `json:"content" validate:"required"` // base64 編碼的圖片內容
|
||
}
|
||
|
||
// 影片上傳請求(使用 multipart/form-data 文件上傳)
|
||
// 注意:文件字段需要在 handler 中通過 r.FormFile("file") 獲取
|
||
type UploadVideoReq {
|
||
Authorization
|
||
}
|
||
|
||
// 統一的上傳響應
|
||
type UploadResp {
|
||
FileUrl string `json:"file_url"` // 文件訪問 URL
|
||
FileSize int64 `json:"file_size,optional"` // 文件大小(bytes)
|
||
MimeType string `json:"mime_type,optional"` // MIME 類型
|
||
}
|
||
|
||
@server(
|
||
group: fileStorage
|
||
prefix: /api/v1/fileStorage
|
||
schemes: https
|
||
timeout: 300s // 影片上傳可能需要更長時間
|
||
middleware: AuthMiddleware
|
||
)
|
||
|
||
service gateway {
|
||
/* @respdoc-400 (BaseResponse) // 輸入的參數錯誤 */
|
||
/* @respdoc-403 (BaseResponse) // 無效的Token */
|
||
/* @respdoc-413 (BaseResponse) // 文件大小超過限制 */
|
||
/* @respdoc-500 (BaseResponse) // 伺服器出錯 */
|
||
@doc(
|
||
summary: "create - 上傳圖片檔案"
|
||
description: "上傳轉成 base64 過後的圖片,建議圖片大小不超過 10MB"
|
||
)
|
||
@handler UploadImgHandler
|
||
post /fileStorage/img/upload (UploadImgReq) returns (UploadResp)
|
||
|
||
/* @respdoc-400 (BaseResponse) // 輸入的參數錯誤 */
|
||
/* @respdoc-403 (BaseResponse) // 無效的Token */
|
||
/* @respdoc-413 (BaseResponse) // 文件大小超過限制 */
|
||
/* @respdoc-500 (BaseResponse) // 伺服器出錯 */
|
||
@doc(
|
||
summary: "create - 上傳影片檔案"
|
||
description: "使用 multipart/form-data 上傳影片檔案,form field 名稱為 'file',注意:大檔案(>50MB)建議使用分片上傳機制"
|
||
)
|
||
@handler UploadVideoHandler
|
||
post /fileStorage/video/upload (UploadVideoReq) returns (UploadResp)
|
||
} |