新增 POST /api/admin/storage/batch-download-urls,支持一次传入最多 50 个 file_key,返回对应预签名下载 URL 映射。解决列表页批量展示图片需多次请求的问题。 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
25 lines
1.5 KiB
Go
25 lines
1.5 KiB
Go
package dto
|
||
|
||
type GetUploadURLRequest struct {
|
||
FileName string `json:"file_name" validate:"required,min=1,max=255" required:"true" minLength:"1" maxLength:"255" description:"文件名(如:cards.csv)"`
|
||
ContentType string `json:"content_type" validate:"omitempty,max=100" maxLength:"100" description:"文件 MIME 类型(如:text/csv),留空则自动推断"`
|
||
Purpose string `json:"purpose" validate:"required,oneof=iot_import export attachment" required:"true" description:"文件用途 (iot_import:ICCID导入, export:数据导出, attachment:附件)"`
|
||
}
|
||
|
||
type GetUploadURLResponse struct {
|
||
UploadURL string `json:"upload_url" description:"预签名上传 URL,使用 PUT 方法上传文件"`
|
||
FileKey string `json:"file_key" description:"文件路径标识,上传成功后用于调用业务接口"`
|
||
ExpiresIn int `json:"expires_in" description:"URL 有效期(秒)"`
|
||
}
|
||
|
||
// GetBatchDownloadURLsRequest 批量获取文件下载预签名 URL 请求
|
||
type GetBatchDownloadURLsRequest struct {
|
||
FileKeys []string `json:"file_keys" validate:"required,min=1,max=50,dive,required" required:"true" minLength:"1" description:"文件路径标识列表,最多 50 个"`
|
||
}
|
||
|
||
// GetBatchDownloadURLsResponse 批量获取文件下载预签名 URL 响应
|
||
type GetBatchDownloadURLsResponse struct {
|
||
URLs map[string]string `json:"urls" description:"file_key 到预签名下载 URL 的映射"`
|
||
ExpiresIn int `json:"expires_in" description:"URL 有效期(秒)"`
|
||
}
|