curl -d '{"stream": true, "bucket": "elm-bucket-virus-scan", "key": "test/virus_test.txt"}' -H 'Content-Type: application/json' http://172.31.39.37:8080/api/clamav/scan/s3/object 
import requests
import json
def elm_scan_object(url, stream, bucket, key):
    # Define the payload as a dictionary
    payload = {
		"stream": stream,
        "bucket": bucket,
        "key": key
    }
    # Set the headers
    headers = {
        "Content-Type": "application/json"
    }
    # Send a POST request to the API endpoint
    response = requests.post(url, data=json.dumps(payload), headers=headers)
    # Check the response status code
    if response.status_code == 200:
        # Request was successful
        data = response.json()  # Extract the JSON data from the response
        return data
    else:
        # Request was not successful
        print(f"Request failed with status code: {response.status_code}")
        return None
if __name__ == '__main__':        
    result = elm_scan_object(
        url = "http://172.31.39.37:8080/api/clamav/scan/s3/object", \
		stream = True, \
        bucket = 'elm-bucket-virus-scan', \
        key = 'virus_test.txt')
    
    if result:
        print(result)
        print(result['code'])
        print(result['message'])
const axios = require('axios');
async function elmScanObject(url, stream, bucket, key) {
  try {
    const payload = {
	  stream,
      bucket,
      key,
    };
    const headers = {
      'Content-Type': 'application/json',
    };
    const response = await axios.post(url, payload, { headers });
    if (response.status === 200) {
      return response.data;
    } else {
      console.log(`Request failed with status code: ${response.status}`);
      return null;
    }
  } catch (error) {
    console.error('An error occurred:', error.message);
    return null;
  }
}
async function main() {
  const url = 'http://172.31.39.37:8080/api/clamav/scan/s3/object';
  const stream = true;
  const bucket = 'elm-bucket-virus-scan';
  const key = 'virus_test.txt';
  const result = await elmScanObject(url, stream, bucket, key);
  if (result) {
    console.log(result);
    console.log(result.code);
    console.log(result.message);
  }
}
main();
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<Map<String, dynamic>?> elmScanObject(String url, bool stream, String bucket, String key) async {
  try {
    final payload = {
      'stream': stream,
      'bucket': bucket,
      'key': key,
    };
    final headers = {
      'Content-Type': 'application/json',
    };
    final response = await http.post(Uri.parse(url), headers: headers, body: jsonEncode(payload));
    if (response.statusCode == 200) {
      return jsonDecode(response.body);
    } else {
      print('Request failed with status code: ${response.statusCode}');
      return null;
    }
  } catch (error) {
    print('An error occurred: $error');
    return null;
  }
}
void main() async {
  final url = 'http://172.31.39.37:8080/api/clamav/scan/s3/object';
  final stream = true;
  final bucket = 'elm-bucket-virus-scan';
  final key = 'virus_test.txt';
  final result = await elmScanObject(url, stream, bucket, key);
  if (result != null) {
    print(result);
    print(result['code']);
    print(result['message']);
  }
}
package main
import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)
func elmScanObject(url string, stream bool, bucket string, key string) (map[string]interface{}, error) {
	payload := map[string]interface{}{
		"stream": stream,
		"bucket": bucket,
		"key":    key,
	}
	payloadBytes, err := json.Marshal(payload)
	if err != nil {
		return nil, err
	}
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(payloadBytes))
	if err != nil {
		return nil, err
	}
	req.Header.Set("Content-Type", "application/json")
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	respBody, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return nil, err
	}
	if resp.StatusCode == http.StatusOK {
		var data map[string]interface{}
		err = json.Unmarshal(respBody, &data)
		if err != nil {
			return nil, err
		}
		return data, nil
	} else {
		return nil, fmt.Errorf("Request failed with status code: %d", resp.StatusCode)
	}
}
func main() {
	url := "http://172.31.39.37:8080/api/clamav/scan/s3/object"
	stream := true
	bucket := "elm-bucket-virus-scan"
	key := "virus_test.txt"
	result, err := elmScanObject(url, stream, bucket, key)
	if err != nil {
		fmt.Println("An error occurred:", err)
		return
	}
	if result != nil {
		fmt.Println(result)
		fmt.Println(result["code"])
		fmt.Println(result["message"])
	}
}