ClamAV Antivirus API Server Code Examples (Container)
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/objectPython
Section titled “Python”import requestsimport 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
Section titled “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();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"]) }}