2024-10-10 16:35:36 +08:00
|
|
|
from core.helper import ssrf_proxy
|
|
|
|
|
|
|
|
|
|
|
|
def download_with_size_limit(url, max_download_size: int, **kwargs):
|
2024-11-01 15:38:45 +08:00
|
|
|
response = ssrf_proxy.get(url, follow_redirects=True, **kwargs)
|
2024-10-10 16:35:36 +08:00
|
|
|
if response.status_code == 404:
|
|
|
|
raise ValueError("file not found")
|
|
|
|
|
|
|
|
total_size = 0
|
|
|
|
chunks = []
|
|
|
|
for chunk in response.iter_bytes():
|
|
|
|
total_size += len(chunk)
|
|
|
|
if total_size > max_download_size:
|
|
|
|
raise ValueError("Max file size reached")
|
|
|
|
chunks.append(chunk)
|
|
|
|
content = b"".join(chunks)
|
|
|
|
return content
|