Skip to main content
डॉक्यूमेंटेशन
लर्निंग सेंटर

विस्तृत गाइड, ट्यूटोरियल और API डॉक्यूमेंटेशन के साथ कंटेंट मॉडरेशन में महारत हासिल करें

क्विक लिंक

फ़ाइल एंटीवायरस स्कैनिंग

Discuse फ़ाइलों को आपके उपयोगकर्ताओं तक पहुँचने से पहले मैलवेयर के लिए स्कैन करता है। इसे कॉल करने के दो तरीके हैं: अन्य जाँचों के साथ दस्तावेज़ URLs स्कैन करने के लिए POST /api/v2/check पर check_antivirus सक्षम करें, या किसी एक फ़ाइल को स्कैन करने और खतरे के नाम व SHA-256 हैश सहित पूरी रिपोर्ट पाने के लिए समर्पित POST /api/v2/scan endpoint का उपयोग करें।

अपलोड की गई फ़ाइलें क्यों स्कैन करें?

फ़ाइल अपलोड एक आम अटैक वेक्टर है। आपके प्लेटफ़ॉर्म के ज़रिए मैलवेयर वितरित होने से उपयोगकर्ता डेटा, आपकी प्रतिष्ठा और आपके अपने इंफ़्रास्ट्रक्चर को जोखिम हो सकता है। हर फ़ाइल को स्टोर या सर्व करने से पहले स्कैन करने से यह कमी दूर हो जाती है।

स्कैनिंग कैसे काम करती है?

जब आप कोई फ़ाइल URL सबमिट करते हैं, तो Discuse फ़ाइल को एक अलग-थलग वातावरण में डाउनलोड करता है, उसे स्कैन करता है, और बताता है कि कोई खतरा मिला या नहीं। समान फ़ाइलों को कैश किया जाता है, इसलिए दोबारा स्कैन तेज़ होते हैं।

विकल्प 1: /check अनुरोध के अंदर फ़ाइलें स्कैन करें

content.document_urls में दस्तावेज़ URLs पास करें और check_antivirus सक्षम करें। जब आप ऐसे संदेश को मॉडरेट कर रहे हों जिसके साथ कोई अटैचमेंट भी हो, तो यह सही कॉल है।

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "document_urls": ["https://example.com/uploaded-file.pdf"]
    },
    "settings": {
      "check_antivirus": true
    }
  }'

एक अनुरोध में अधिकतम 5 दस्तावेज़ URLs स्वीकार किए जाते हैं।

प्रतिक्रिया

{
  "has_violations": true,
  "cached": false,
  "message": "Malware detected in file",
  "results": {
    "hits": true,
    "antivirus": {
      "status": "FOUND",
      "hit": true,
      "details": [
        {
          "type": "malware",
          "details": "Trojan.GenericKD.12345678",
          "result": true
        }
      ]
    }
  }
}

results.antivirus के तहत antivirus परिणाम में तीन फ़ील्ड होते हैं: status, hit, और एक details array। हर details entry में type, details (खतरे का नाम या संदेश), confidence, और result होता है।

विकल्प 2: /api/v2/scan के साथ एक फ़ाइल स्कैन करें

समर्पित scan endpoint एक फ़ाइल के लिए अधिक समृद्ध रिपोर्ट लौटाता है, जिसमें खतरे का नाम, फ़ाइल hash, और scan duration शामिल होते हैं।

curl -X POST https://api.discuse.com/api/v2/scan \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "file_url": "https://example.com/uploaded-file.pdf",
    "file_name": "uploaded-file.pdf"
  }'

प्रतिक्रिया

{
  "hit": true,
  "status": "FOUND",
  "description": "Trojan.GenericKD.12345678",
  "file_name": "uploaded-file.pdf",
  "file_hash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "scan_time_ms": 1250
}

/api/v2/scan अनुरोध फ़ील्ड

फ़ील्ड प्रकार नोट्स
api_key string Body में वैकल्पिक; इसके बजाय आप X-API-Key भेज सकते हैं
file_url string स्कैन की जाने वाली फ़ाइल का URL
file_name string रिपोर्ट के लिए वैकल्पिक filename

file_url दें। Base64 file_data schema में परिभाषित है, लेकिन यह अभी समर्थित नहीं है — केवल file_data वाला अनुरोध एक error लौटाता है और आपसे file_url उपयोग करने को कहता है।

/api/v2/scan प्रतिक्रिया फ़ील्ड

फ़ील्ड प्रकार विवरण
hit boolean जब malware मिला हो तो True
status string OK (clean), FOUND (malware), या ERROR
description string खतरे का नाम, या error message
file_name string स्कैन किया गया filename
file_hash string फ़ाइल का SHA-256 hash
scan_time_ms number स्कैन अवधि milliseconds में

उपयोग सीमाएँ

Antivirus scanning केवल paid plans पर उपलब्ध है। स्कैन की गई हर फ़ाइल quota में एक बार गिनी जाती है।

प्लान मासिक स्कैन Overage दर
Basic उपलब्ध नहीं -
Gold 500 $0.001/scan
Platinum 1,500 $0.00085/scan (15% छूट)
Ultimate 3,000 $0.00075/scan (25% छूट)

यदि किसी project की कोई active subscription नहीं है, तो antivirus scans अस्वीकार कर दिए जाते हैं।

सर्वोत्तम तरीके

स्टोरेज से पहले स्कैन करें

किसी फ़ाइल को स्थायी रूप से स्टोर करने से पहले स्कैन करें, ताकि संक्रमित फ़ाइल कभी आपके system में प्रवेश ही न करे:

async function handleFileUpload(fileUrl, fileName) {
  const result = await scanFile(fileUrl, fileName);

  if (result.hit) {
    throw new Error('Infected file detected: ' + result.description);
  }
  await storeFile(fileUrl);
}

Status के आधार पर branch करें

एक clean फ़ाइल और असफल scan के बीच अंतर करें:

const result = await scanFile(fileUrl, fileName);

switch (result.status) {
  case 'FOUND': await rejectAndNotify(fileUrl, result.description); break;
  case 'ERROR': await quarantineForReview(fileUrl); break;
  case 'OK':    await storeFile(fileUrl); break;
}

समान URLs दोबारा इस्तेमाल करें

समान फ़ाइलों को cache किया जाता है। स्थिर file URLs का उपयोग करने से repeat scans दोबारा download करने के बजाय cache से लौट सकते हैं।

इंटीग्रेशन उदाहरण

Node.js (समर्पित scan endpoint)

async function scanFile(fileUrl, fileName) {
  const response = await fetch('https://api.discuse.com/api/v2/scan', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({ file_url: fileUrl, file_name: fileName })
  });

  return response.json();
}

Python (समर्पित scan endpoint)

import os
import requests

def scan_file(file_url, file_name=None):
    response = requests.post(
        'https://api.discuse.com/api/v2/scan',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={'file_url': file_url, 'file_name': file_name}
    )
    return response.json()

अपने प्लेटफ़ॉर्म को malware से सुरक्षित करने के लिए तैयार हैं? Discuse के साथ शुरुआत करें.

Discuse टीम द्वारा लिखा गया · अंतिम अपडेट June 2026

संबंधित लेख

Text Analysis और Sentiment Detection

टेक्स्ट content में spam, toxicity, profanity का पता लगाएँ और sentiment का विश्लेषण करें

Image NSFW Detection

अनुपयुक्त images और adult content का अपने-आप पता लगाएँ और फ़िल्टर करें

Spam Detection

टेक्स्ट और messages के लिए AI-संचालित spam filtering