This repository has been archived on 2024-08-23. You can view files and clone it, but cannot push or open issues or pull requests.
2023-07-16 13:23:25 +00:00

38 lines
943 B
Python

import asyncio
import pathlib
from time import perf_counter
import aiofiles
from httpx import AsyncClient, Response
async def get_file(client: AsyncClient, url: str) -> Response:
return await client.get(url, follow_redirects=True)
async def write_file(response: Response) -> None:
file_name = response.url.path.rsplit("/", 1)[1]
print(file_name)
async with aiofiles.open(f"photos/{file_name}", "wb") as f:
await f.write(response.content)
async def download_file(client: AsyncClient, url: str) -> None:
await write_file(await get_file(client, url))
async def main():
pathlib.Path("photos").mkdir(exist_ok=True)
async with AsyncClient() as client:
await asyncio.gather(
*(
download_file(client, "https://loremflickr.com/320/240")
for _ in range(10)
)
)
start = perf_counter()
asyncio.run(main())
print(perf_counter() - start)