Shell

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 

Python

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'])

JavaScript

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();

Dart

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']);
  }
}

Go

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"])
	}
}