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