46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
import shutil
|
|
from pydantic.types import NoneBytes
|
|
import requests
|
|
from starlette.requests import Request
|
|
import datetime
|
|
import oss2
|
|
import os
|
|
|
|
|
|
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)
|
|
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}"
|
|
|
|
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)
|