2021-11-22 14:51:10 +08:00

41 lines
1.5 KiB
Python

import shutil
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}'
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}"
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)
return remote_url
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'
BucketName = 'h5games-kingsome'
auth = oss2.Auth(AccessKeyId, AccessKeySecret)
bucket = oss2.Bucket(auth, Endpoint, BucketName)
bucket.put_object_from_file(remote_filename, local_filename)
async def write_redis(request:Request,key,values):
redis_client = request.app.state.redis
await redis_client.set(key,values)