filedownload.py
This commit is contained in:
parent
fb6a96773d
commit
f846c350ea
41
ahserver/filedownload.py
Normal file
41
ahserver/filedownload.py
Normal file
@ -0,0 +1,41 @@
|
||||
import os
|
||||
import asyncio
|
||||
|
||||
from aiohttp.web_exceptions import HTTPNotFound
|
||||
from aiohttp.web import StreamResponse
|
||||
from aiohttp import web
|
||||
import aiofile
|
||||
|
||||
from appPublic.rc4 import RC4
|
||||
|
||||
crypto_aim = 'God bless USA and others'
|
||||
def path_encode(path):
|
||||
rc4 = RC4()
|
||||
return rc4.encode(path,crypto_aim)
|
||||
|
||||
def path_decode(dpath):
|
||||
rc4 = RC4()
|
||||
return rc4.decode(dpath,crypto_aim)
|
||||
|
||||
async def file_download(request, filepath):
|
||||
filename = os.path.basename(filepath)
|
||||
if os.path.exists(filepath):
|
||||
response = web.StreamResponse(
|
||||
status=200,
|
||||
reason='OK',
|
||||
headers={'Content-Type': 'text/plain',
|
||||
'Content-Disposition': 'attrachment;filename={}'.format(filename)
|
||||
},
|
||||
)
|
||||
await response.prepare(request)
|
||||
|
||||
async with aiofile.AIOFile(filepath, 'rb') as f:
|
||||
while True:
|
||||
x = await f.read()
|
||||
if x is None:
|
||||
break
|
||||
await response.write(x)
|
||||
await response.write_eof()
|
||||
return response
|
||||
raise HTTPNotFound
|
||||
|
Loading…
Reference in New Issue
Block a user