Penanganan Error API VirusTotal
Saat berinteraksi dengan API VirusTotal menggunakan Python, tantangan utama adalah menangani batasan kuota (rate limiting) dan kegagalan koneksi jaringan. VirusTotal menggunakan kode status HTTP standar untuk mengomunikasikan hasil permintaan. Implementasi try-except yang dikombinasikan dengan pengecekan status kode adalah standar industri untuk menjaga stabilitas skrip otomatisasi Anda.
Kode Implementasi Penanganan Error
Gunakan pustaka requests untuk menangani respons API. Berikut adalah pola implementasi yang disarankan untuk menangani error umum seperti 429 (Too Many Requests) dan 403 (Forbidden).
import requests
import time
def get_report(api_key, resource_id):
url = f"https://www.virustotal.com/api/v3/files/{resource_id}"
headers = {"x-apikey": api_key}
try:
response = requests.get(url, headers=headers, timeout=10)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
print("Rate limit terlampaui. Menunggu 60 detik...")
time.sleep(60)
return get_report(api_key, resource_id)
elif response.status_code == 403:
raise Exception("API Key tidak valid atau tidak memiliki akses.")
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"Terjadi kesalahan koneksi: {e}")
return NoneTabel Kode Status HTTP VirusTotal
| Kode Status | Penyebab | Tindakan |
|---|---|---|
| 200 | Sukses | Proses data JSON |
| 400 | Bad Request | Periksa format parameter |
| 401 | Unauthorized | API Key salah/kosong |
| 403 | Forbidden | Akses ditolak/Premium only |
| 404 | Not Found | Hash tidak ditemukan |
| 429 | Too Many Requests | Implementasikan backoff/delay |
Strategi Troubleshooting
- Implementasi Exponential Backoff: Jangan hanya menunggu waktu statis saat menerima error 429. Gunakan peningkatan waktu tunggu secara eksponensial untuk menghindari pemblokiran IP.
- Validasi Timeout: Selalu sertakan parameter
timeoutpada fungsirequests.get()untuk mencegah skrip menggantung (hang) saat server VirusTotal mengalami latensi tinggi. - Logging: Gunakan modul
loggingbawaan Python alih-alihprint()untuk mencatat error ke dalam file, sehingga memudahkan audit jika terjadi kegagalan sistem di masa depan. - Verifikasi API Key: Pastikan API Key disimpan dalam variabel lingkungan (environment variables) dan tidak di-hardcode di dalam skrip untuk alasan keamanan.
🔍 Orang Lain Juga Mencari Ini
Virustotal Api Python Requests
Python Handle Http 429 Error
Virustotal Api V3 Documentation
Python Requests Timeout Handling
Virustotal Api Rate Limit Python
Python Error Handling Best Practices
Virustotal File Report Api
Python Requests Exception Handling
Automating Virustotal With Python
Virustotal Api Key Security
Python Exponential Backoff Implementation
Virustotal Api Status Codes
Python Script For Malware Analysis
Virustotal V3 Api Examples
Handling Api Rate Limits In Python