Как сделать SRC файлы из S3 Bucket - PullRequest
0 голосов
/ 09 мая 2019

Этот код отлично работает на моей локальной машине, но я бы хотел переместить его на AWS Lambda

Я уже загрузил ffmpeg в виде двоичной зависимости к функциональному слою

import subprocess
p = subprocess.call(
    'ffmpeg -r 1 -loop 1 -i "./ep1.png" -i "./ep1.mp3" -acodec copy -r 1 -shortest -vf scale=1280:720 ep1.flv', shell=True)

Вопрос в том, как заменить

"./ep1.png" 

и

"./ep1.mp3" 

как понятный путь для команды ffmpeg

Это документация, которую я нашел в boto3, но я не уверен, как это реализовать

 s3 = boto3.client('s3')
 s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

Дайте мне знать, если я направляюсь в правильном направлении, после этого шага я бы использовал boto3 для загрузки ep1.flv в выходной сегмент S3

1 Ответ

1 голос
/ 09 мая 2019

Функции AWS Lambda могут хранить данные в каталоге /tmp/.

Итак, вы можете использовать:

 s3.download_file('my-bucket', 'ep1.mp3', '/tmp/ep1.mp3')
 s3.download_file('my-bucket', 'ep1.png', '/tmp/ep1.png')

p = subprocess.call(
    'ffmpeg -r 1 -loop 1 -i "/tmp/ep1.png" -i "/tmp/ep1.mp3" -acodec copy -r 1 -shortest -vf scale=1280:720 /tmp/ep1.flv', shell=True)

Кроме того, убедитесь, что вы удалили файлы в /tmp/ до выхода из функции, так как контейнер может быть использован повторно и предусмотрено только 500 МБ дискового пространства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...