download.py 538 B

1234567891011121314151617
  1. from core.helper import ssrf_proxy
  2. def download_with_size_limit(url, max_download_size: int, **kwargs):
  3. response = ssrf_proxy.get(url, follow_redirects=True, **kwargs)
  4. if response.status_code == 404:
  5. raise ValueError("file not found")
  6. total_size = 0
  7. chunks = []
  8. for chunk in response.iter_bytes():
  9. total_size += len(chunk)
  10. if total_size > max_download_size:
  11. raise ValueError("Max file size reached")
  12. chunks.append(chunk)
  13. content = b"".join(chunks)
  14. return content