This commit is contained in:
root 2021-11-22 15:57:20 +08:00
parent af748247c5
commit 078307787e
4 changed files with 33 additions and 26 deletions

View File

View File

@ -69,7 +69,6 @@ async def root(request: Request):
return {"message": "kajsk"}
# @app.post("/send-notification/{email}")
# async def send_notification(request: Request, email: str, background_tasks: BackgroundTasks, q: str = Depends(get_query)):
# redis_client = request.app.state.redis
@ -82,5 +81,5 @@ async def root(request: Request):
if __name__ == '__main__':
import uvicorn
uvicorn.run(app='main:app', host="127.0.0.1",
port=8010, reload=True, debug=True)
uvicorn.run(app='main:app', host="0.0.0.0",
port=8020, reload=True, debug=True)

View File

@ -9,12 +9,15 @@ router = APIRouter()
@router.get("/img")
async def get_img(request: Request, url: str) -> JSONResponse:
key = url[24:]
async def get_imgs(request: Request, keys: str) -> JSONResponse:
redis_client = request.app.state.redis
values = await redis_client.get(key)
values = await redis_client.get(keys)
print(keys, values)
if values:
print(f"get {keys}")
return {"url": values}
else:
vv = await get_img(key)
print(f"new down {keys}")
vv = await get_img(keys)
await redis_client.set(keys, vv)
return {"url": vv}

View File

@ -1,31 +1,36 @@
import shutil
from pydantic.types import NoneBytes
import requests
from starlette.requests import Request
import datetime
import oss2
import os
async def get_img(request:Request,key:str)->bool:
url = f'http://imgsmall.dmzj.com/{key}'
async def get_img(keys: str) -> bool:
print(f"get {keys}")
url = keys
headers = {'Referer': 'https://www.dmzj.com/'}
response = requests.get(url=url, headers=headers, stream=True)
name=key.split('/')[-1]
paths='/'.join(key.split('/')[:-1])
project='imgsmall'
now=datetime.datetime.strftime(datetime.datetime.now(),"%Y%m%d%H%M%S")
local_filename=f"/tmp/{now}_{name}"
key = keys[24:]
if not key:
return None
name = key.split('/')[-1]
paths = '/'.join(key.split('/')[:-1])
project = 'imgsmall'
now = datetime.datetime.strftime(datetime.datetime.now(), "%Y%m%d%H%M%S")
local_filename = f"/tmp/{now}_{name}"
with open(local_filename, 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
del response
remote_filename=f"{[project]}/{paths}/{name}"
await simple_upload(local_filename,remote_filename)
remote_url=f"https://h5games-al.kingsome.cn/{remote_filename}"
redis_client = request.app.state.redis
await redis_client.set(url,remote_url)
remote_filename = f"{project}{paths}/{name}"
await simple_upload(local_filename, remote_filename)
remote_url = f"https://h5games-al.kingsome.cn/{remote_filename}"
return remote_url
async def simple_upload(local_filename,remote_filename):
async def simple_upload(local_filename, remote_filename):
AccessKeyId = os.environ.get('ALI_ACCESS_KEY_ID')
AccessKeySecret = os.environ.get('ALI_ACCESS_KEY_SECRET')
Endpoint = 'oss-cn-shanghai.aliyuncs.com'
@ -35,6 +40,6 @@ async def simple_upload(local_filename,remote_filename):
bucket.put_object_from_file(remote_filename, local_filename)
async def write_redis(request:Request,key,values):
async def write_redis(request: Request, key, values):
redis_client = request.app.state.redis
await redis_client.set(key,values)
await redis_client.set(key, values)