Throttling, flow controlling StreamReader for aiohttp
- Python >= 3.4.2
- aiohttp https://pypi.python.org/pypi/aiohttp
aiothrottle
is offered under the GPL v3 license.
https://aiothrottle.readthedocs.org/
The latest developer version is available in a github repository: https://github.com/panda73111/aiothrottle
import asyncio
import aiohttp
import aiothrottle
@asyncio.coroutine
def load_file(url):
response = yield from aiohttp.request("GET", url)
data = yield from response.read()
with open("largefile.zip", "wb") as file:
file.write(data)
response.close()
# setup the rate limit to 200 KB/s
aiothrottle.limit_rate(200 * 1024)
# download a large file without blocking bandwidth
loop = asyncio.get_event_loop()
loop.run_until_complete(load_file(
"http://example.com/largefile.zip"))
# unset the rate limit
aiothrottle.unlimit_rate()
- Upload rate limiting class
- General socket limiting class