feat(server-go): AI 巡检闭环后端(inspection_records + /inspections 幂等接口)

This commit is contained in:
weijuesen
2026-08-12 16:24:55 +08:00
parent b89ad5e865
commit 210bd6cefb
10 changed files with 354 additions and 3 deletions
@@ -45,8 +45,8 @@ func validateImageFile(filename string, size int64) error {
return nil
}
// buildImageKey 生成 knowledge/<日期>/<随机>.ext 的对象键
func buildImageKey(filename string) (string, string, error) {
// buildObjectKey 生成 <prefix>/<日期>/<随机>.ext 的对象键
func buildObjectKey(prefix, filename string) (string, string, error) {
ext := strings.ToLower(filepath.Ext(filename))
if _, ok := imageContentType(ext); !ok {
return "", "", errors.New("仅支持 jpg/jpeg/png/webp 图片")
@@ -56,10 +56,15 @@ func buildImageKey(filename string) (string, string, error) {
return "", "", err
}
date := time.Now().Format("20060102")
key := fmt.Sprintf("knowledge/%s/%s%s", date, hex.EncodeToString(buf), ext)
key := fmt.Sprintf("%s/%s/%s%s", prefix, date, hex.EncodeToString(buf), ext)
return key, ext, nil
}
// buildImageKey 生成 knowledge/<日期>/<随机>.ext 的对象键
func buildImageKey(filename string) (string, string, error) {
return buildObjectKey("knowledge", filename)
}
// uploadKnowledgeImage 上传知识库图片(multipart 字段名 file
func uploadKnowledgeImage(s3 *service.S3Service, bucket string) gin.HandlerFunc {
return func(c *gin.Context) {