to_inventory/back/tgbot/tasks.py

43 lines
1.2 KiB
Python

import os
import boto3
import time
import requests
from celery import shared_task
from celery.utils.log import get_task_logger
from api.celery import celery_app
logger = get_task_logger(__name__)
aws_access_key_id = os.environ.get("AWS_ACCESS")
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})
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
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)