fix new
This commit is contained in:
parent
af748247c5
commit
078307787e
0
logs/2021-11-22_error.log
Normal file
0
logs/2021-11-22_error.log
Normal file
5
main.py
5
main.py
@ -69,7 +69,6 @@ async def root(request: Request):
|
|||||||
return {"message": "kajsk"}
|
return {"message": "kajsk"}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# @app.post("/send-notification/{email}")
|
# @app.post("/send-notification/{email}")
|
||||||
# async def send_notification(request: Request, email: str, background_tasks: BackgroundTasks, q: str = Depends(get_query)):
|
# async def send_notification(request: Request, email: str, background_tasks: BackgroundTasks, q: str = Depends(get_query)):
|
||||||
# redis_client = request.app.state.redis
|
# redis_client = request.app.state.redis
|
||||||
@ -82,5 +81,5 @@ async def root(request: Request):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import uvicorn
|
import uvicorn
|
||||||
uvicorn.run(app='main:app', host="127.0.0.1",
|
uvicorn.run(app='main:app', host="0.0.0.0",
|
||||||
port=8010, reload=True, debug=True)
|
port=8020, reload=True, debug=True)
|
||||||
|
@ -9,12 +9,15 @@ router = APIRouter()
|
|||||||
|
|
||||||
|
|
||||||
@router.get("/img")
|
@router.get("/img")
|
||||||
async def get_img(request: Request, url: str) -> JSONResponse:
|
async def get_imgs(request: Request, keys: str) -> JSONResponse:
|
||||||
key = url[24:]
|
|
||||||
redis_client = request.app.state.redis
|
redis_client = request.app.state.redis
|
||||||
values = await redis_client.get(key)
|
values = await redis_client.get(keys)
|
||||||
|
print(keys, values)
|
||||||
if values:
|
if values:
|
||||||
|
print(f"get {keys}")
|
||||||
return {"url": values}
|
return {"url": values}
|
||||||
else:
|
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}
|
return {"url": vv}
|
||||||
|
@ -1,40 +1,45 @@
|
|||||||
import shutil
|
import shutil
|
||||||
|
from pydantic.types import NoneBytes
|
||||||
import requests
|
import requests
|
||||||
from starlette.requests import Request
|
from starlette.requests import Request
|
||||||
import datetime
|
import datetime
|
||||||
import oss2
|
import oss2
|
||||||
import os
|
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/'}
|
headers = {'Referer': 'https://www.dmzj.com/'}
|
||||||
response = requests.get(url=url, headers=headers, stream=True)
|
response = requests.get(url=url, headers=headers, stream=True)
|
||||||
name=key.split('/')[-1]
|
key = keys[24:]
|
||||||
paths='/'.join(key.split('/')[:-1])
|
if not key:
|
||||||
project='imgsmall'
|
return None
|
||||||
now=datetime.datetime.strftime(datetime.datetime.now(),"%Y%m%d%H%M%S")
|
name = key.split('/')[-1]
|
||||||
local_filename=f"/tmp/{now}_{name}"
|
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:
|
with open(local_filename, 'wb') as out_file:
|
||||||
shutil.copyfileobj(response.raw, out_file)
|
shutil.copyfileobj(response.raw, out_file)
|
||||||
del response
|
del response
|
||||||
remote_filename=f"{[project]}/{paths}/{name}"
|
remote_filename = f"{project}{paths}/{name}"
|
||||||
await simple_upload(local_filename,remote_filename)
|
await simple_upload(local_filename, remote_filename)
|
||||||
remote_url=f"https://h5games-al.kingsome.cn/{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)
|
|
||||||
return remote_url
|
|
||||||
|
|
||||||
|
|
||||||
async def simple_upload(local_filename,remote_filename):
|
return remote_url
|
||||||
|
|
||||||
|
|
||||||
|
async def simple_upload(local_filename, remote_filename):
|
||||||
AccessKeyId = os.environ.get('ALI_ACCESS_KEY_ID')
|
AccessKeyId = os.environ.get('ALI_ACCESS_KEY_ID')
|
||||||
AccessKeySecret = os.environ.get('ALI_ACCESS_KEY_SECRET')
|
AccessKeySecret = os.environ.get('ALI_ACCESS_KEY_SECRET')
|
||||||
Endpoint = 'oss-cn-shanghai.aliyuncs.com'
|
Endpoint = 'oss-cn-shanghai.aliyuncs.com'
|
||||||
BucketName = 'h5games-kingsome'
|
BucketName = 'h5games-kingsome'
|
||||||
auth = oss2.Auth(AccessKeyId, AccessKeySecret)
|
auth = oss2.Auth(AccessKeyId, AccessKeySecret)
|
||||||
bucket = oss2.Bucket(auth, Endpoint, BucketName)
|
bucket = oss2.Bucket(auth, Endpoint, BucketName)
|
||||||
bucket.put_object_from_file(remote_filename, local_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
|
redis_client = request.app.state.redis
|
||||||
await redis_client.set(key,values)
|
await redis_client.set(key, values)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user