diff --git a/api/viid_client.go b/api/viid_client.go index 7721265..8aba659 100644 --- a/api/viid_client.go +++ b/api/viid_client.go @@ -2,6 +2,7 @@ package api import ( "ZhenTuLocalPassiveAdapter/config" + "ZhenTuLocalPassiveAdapter/logger" "bytes" "context" "encoding/json" @@ -9,6 +10,8 @@ import ( "io" "net/http" "time" + + "go.uber.org/zap" ) // VIID Request/Response Structures @@ -189,11 +192,13 @@ func SubmitFailure(ctx context.Context, taskID int64, errorCode, errorMessage st return nil } -func UploadFileToOSS(ctx context.Context, uploadUrl string, data []byte) error { +func UploadFileToOSS(ctx context.Context, uploadUrl string, data []byte, contentType string) error { req, err := http.NewRequestWithContext(ctx, "PUT", uploadUrl, bytes.NewReader(data)) if err != nil { return err } + req.Header.Set("Content-Length", fmt.Sprintf("%d", len(data))) + req.Header.Set("Content-Type", contentType) resp, err := GetUploadClient().Do(req) if err != nil { @@ -202,6 +207,8 @@ func UploadFileToOSS(ctx context.Context, uploadUrl string, data []byte) error { defer resp.Body.Close() if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated { + body, _ := io.ReadAll(resp.Body) + logger.Error("oss upload failed", zap.String("body", string(body))) return fmt.Errorf("oss upload failed: %d", resp.StatusCode) } return nil diff --git a/api/viid_upload.go b/api/viid_upload.go index a106cf9..f45ccc9 100644 --- a/api/viid_upload.go +++ b/api/viid_upload.go @@ -4,7 +4,6 @@ import ( "ZhenTuLocalPassiveAdapter/logger" "context" "fmt" - "go.uber.org/zap" "golang.org/x/sync/errgroup" ) @@ -26,7 +25,7 @@ func UploadFaceData(ctx context.Context, scenicId int64, deviceNo string, faceIm // Upload Face Image g.Go(func() error { if len(faceImg) > 0 { - if err := UploadFileToOSS(subCtx, uploadConfig.FaceUploadURL, faceImg); err != nil { + if err := UploadFileToOSS(subCtx, uploadConfig.FaceUploadURL, faceImg, "image/jpeg"); err != nil { return fmt.Errorf("upload face image failed: %w", err) } } @@ -36,7 +35,7 @@ func UploadFaceData(ctx context.Context, scenicId int64, deviceNo string, faceIm // Upload Thumbnail Image g.Go(func() error { if len(thumbImg) > 0 { - if err := UploadFileToOSS(subCtx, uploadConfig.ThumbnailUploadURL, thumbImg); err != nil { + if err := UploadFileToOSS(subCtx, uploadConfig.ThumbnailUploadURL, thumbImg, "image/jpeg"); err != nil { return fmt.Errorf("upload thumbnail image failed: %w", err) } } @@ -46,7 +45,7 @@ func UploadFaceData(ctx context.Context, scenicId int64, deviceNo string, faceIm // Upload Source Image g.Go(func() error { if len(srcImg) > 0 { - if err := UploadFileToOSS(subCtx, uploadConfig.SourceUploadURL, srcImg); err != nil { + if err := UploadFileToOSS(subCtx, uploadConfig.SourceUploadURL, srcImg, "image/jpeg"); err != nil { return fmt.Errorf("upload source image failed: %w", err) } }