私は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