aws cloud add
This commit is contained in:
parent
c74a81c160
commit
accb2c8c50
|
@ -199,3 +199,8 @@ TGBOT = {
|
|||
"BASE_URL": NGROK_TEMP,
|
||||
"WEBHOOK_URL": f"webhook/{os.environ.get('TG_TOKEN')}",
|
||||
}
|
||||
|
||||
SELECTEL = {
|
||||
"access": os.environ.get("AWS_ACCESS"),
|
||||
"secret": os.environ.get("AWS_SECRET"),
|
||||
}
|
||||
|
|
|
@ -2,11 +2,13 @@ import os
|
|||
import boto3
|
||||
import time
|
||||
import requests
|
||||
from django.conf import settings
|
||||
|
||||
from celery import shared_task
|
||||
from celery.utils.log import get_task_logger
|
||||
|
||||
from api.celery import celery_app
|
||||
from .models import TmcField
|
||||
|
||||
logger = get_task_logger(__name__)
|
||||
aws_access_key_id = os.environ.get("AWS_ACCESS")
|
||||
|
@ -14,29 +16,23 @@ aws_secret_access_key = os.environ.get("AWS_SECRET")
|
|||
|
||||
@celery_app.task
|
||||
def upload_file(file_id):
|
||||
from .updater import tg_bot_updater_instance
|
||||
tg_bot_updater_instance.my_queue.put({"name": "admin_get_image", "queryset": file_id})
|
||||
obj = TmcField.objects.filter(file_id=file_id)
|
||||
if not obj:
|
||||
return
|
||||
|
||||
response = None
|
||||
timer = 30
|
||||
while timer > 0:
|
||||
sleeping = 1
|
||||
timer -= sleeping
|
||||
time.sleep(sleeping)
|
||||
if file_id in tg_bot_updater_instance.return_values:
|
||||
response = tg_bot_updater_instance.return_values[file_id]
|
||||
del tg_bot_updater_instance.return_values[file_id]
|
||||
break
|
||||
logger.info(f"start upload file {file_id}")
|
||||
file_url = requests.get(f"https://api.telegram.org/bot{settings.TGBOT['TOKEN']}/getFile?file_id={file_id}")
|
||||
file_json = file_url.json()
|
||||
response = f"https://api.telegram.org/file/bot{settings.TGBOT['TOKEN']}/{file_json['result']['file_path']}"
|
||||
logger.info(f"get tg url {response}")
|
||||
r = requests.get(response, stream=True)
|
||||
s3 = boto3.client(
|
||||
service_name="s3",
|
||||
endpoint_url="https://s3.ru-1.storage.selcloud.ru",
|
||||
aws_access_key_id=settings.SELECTEL['access'],
|
||||
aws_secret_access_key=settings.SELECTEL['secret'],
|
||||
)
|
||||
s3.upload_fileobj(r.raw, 'inventorization', file_id)
|
||||
obj.image_aws_url = file_id
|
||||
obj.save()
|
||||
|
||||
if response:
|
||||
r = requests.get(response, stream=True)
|
||||
s3 = boto3.client(
|
||||
service_name="s3",
|
||||
endpoint_url="https://s3.ru-1.storage.selcloud.ru",
|
||||
aws_access_key_id=aws_access_key_id,
|
||||
aws_secret_access_key=aws_access_key_id,
|
||||
)
|
||||
s3.upload_fileobj(r.raw)
|
||||
|
||||
logger.info("123")
|
||||
logger.info(file_id)
|
||||
|
|
Loading…
Reference in New Issue