Где heroku сохраняет файлы, загруженные celery?
У меня следующая проблема. У меня есть веб-приложение django с задачей celery, которая загружает видео в указанное мной место. На локалке приложение работает нормально, но на heroku я получаю ошибку (Incorrect Path). Название видео правильное selenium save из последнего слова в ссылке (de07fb663fbf470ead9b3f9509c2bf96.mp4).
[2022-08-17 17:31:53,721: ERROR/ForkPoolWorker-2] Task AppVimeoApp.tasks.download[18a4d723-e485-4844-919d-4012fa38ca5d] raised unexpected: OSError('MoviePy error: the file /app/media/AppVimeoApp/video/de07fb663fbf470ead9b3f9509c2bf96.mp4 could not be found!\nPlease check that you entered the correct path.')
celery.py
from celery import shared_task
import time
from selenium import webdriver
from django.conf import settings
from selenium.webdriver.common.by import By
from moviepy.editor import *
@shared_task
def download():
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = str(os.getenv('GOOGLE_CHROME_BIN'))
chrome_options.add_argument("--headless")
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument('--disable-software-rasterizer')
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166")
chrome_options.add_argument("--disable-notifications")
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_experimental_option("prefs", {
"download.default_directory": f"{settings.MEDIA_ROOT}\\AppVimeoApp\\video",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing_for_trusted_sources_enabled": False,
"safebrowsing.enabled": False
}
)
driver = webdriver.Chrome(executable_path=str(os.getenv('CHROMEDRIVER_PATH')), chrome_options=chrome_options)
driver.get('https://pastedownload.com/loom-video-downloader/#url=https://www.loom.com/share/de07fb663fbf470ead9b3f9509c2bf96')
time.sleep(5)
while True:
try:
driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[1]/div[6]/div[2]/div[1]/a').click()
break
except:
time.sleep(1)
continue
time.sleep(5)
video = VideoFileClip(f"{settings.MEDIA_ROOT}/AppVimeoApp/video/de07fb663fbf470ead9b3f9509c2bf96.mp4")
# get seconds of video
video_seconds = video.duration
print(video_seconds)
return (f"Downloaded - {video_seconds}")