У меня есть такая конечная точка, которая возвращает файл с csv:
# POST /export/
@asyncio.coroutine
def export(request):
post = yield from request.post()
if not post.get('passwd', None) == 'topsecret':
return web.Response(status=403)
csv = data.encode()
resp = web.StreamResponse(headers=aiohttp.MultiDict({
'CONTENT-DISPOSITION': 'attachment; filename="%d.csv"' % int(time.time())}))
resp.content_type = 'text/csv'
resp.content_length = len(csv)
yield from resp.prepare(request)
resp.write(csv)
return resp
Мой вопрос следующий: можно ли как-то автоматически устанавливать заголовки? Как сказано в документации, у aiohttp есть BodyPartWriter
класса, который имеет set_content_disposition
метода. Но, насколько я понял, его можно было использовать только с клиентским API (по крайней мере, есть только примеры для клиентского API). Итак, можно ли использовать BodyPartWriter
с объектами Response
?