Files
junhong_cmp_fiber/internal/model/dto/storage_dto.go
huang 2413c2fe14 feat: 新增批量获取文件下载预签名 URL 接口
新增 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>
2026-04-18 10:08:45 +08:00

25 lines
1.5 KiB
Go
Raw 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.
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 有效期(秒)"`
}