MCPcopy Create free account
hub / github.com/ericls/imgdd / isImageSafe

Function isImageSafe

httpserver/imagechecks/safe_image_check.go:16–53  ·  view source on GitHub ↗
(file io.Reader, endpoint string)

Source from the content-addressed store, hash-verified

14}
15
16func isImageSafe(file io.Reader, endpoint string) (bool, error) {
17 client := &http.Client{
18 Timeout: time.Second * 15,
19 }
20 body := &bytes.Buffer{}
21 writer := multipart.NewWriter(body)
22 part, err := writer.CreateFormFile("image", "img.jpg")
23 if err != nil {
24 return false, err
25 }
26 _, err = io.Copy(part, file)
27 if err != nil {
28 return false, err
29 }
30 err = writer.Close()
31 if err != nil {
32 return false, err
33 }
34 req, err := http.NewRequest("POST", endpoint, body)
35 if err != nil {
36 return false, err
37 }
38 req.Header.Set("Content-Type", writer.FormDataContentType())
39 resp, err := client.Do(req)
40 if err != nil {
41 return false, err
42 }
43 content, err := io.ReadAll(resp.Body)
44 if err != nil {
45 return false, err
46 }
47 var safeImageResp SafeImageResp
48 err = json.Unmarshal(content, &safeImageResp)
49 if err != nil {
50 return false, err
51 }
52 return safeImageResp.Safe, nil
53}
54
55func MakeImageChecker(endpoint string) Checker {
56 return func(file io.Reader) bool {

Callers 1

MakeImageCheckerFunction · 0.85

Calls 1

SetMethod · 0.65

Tested by

no test coverage detected