Есть ли в любом случае возможность хранить вывод ffmpeg в папке хранения EFS?

#python-3.x #aws-lambda #amazon-efs #pyffmpeg

Вопрос:

У меня есть один видеофайл, который я хочу конвертировать, и этот видеофайл хранится в корзине s3. У меня был реализован весь код для преобразования видеоформата, но проблема в том, что мне нужно загрузить это преобразованное видео в корзину s3, и для этого я предоставил временное хранилище EFS, которое можно использовать для хранения преобразованного видеофайла и загрузки в s3 из него. Это постановка проблемы или поток, который я хочу реализовать. Теперь проблема в том, что я не могу сохранить выходные данные в папке хранения EFS, так что кто-нибудь может мне помочь ? PS. Я настроил и смонтировал свои EFS с помощью lambda введите описание изображения здесь

 def handler(event, context):
    print(event)
    s3_client = boto3.client('s3', region_name=S3_REGION,
                             aws_access_key_id=S3_ACCESS_KEY_ID,
                             aws_secret_access_key=S3_ACCESS_SECRET_KEY)
    result = s3_client.list_objects(Bucket=S3_BUCKET_NAME, Prefix='videos/')
    for o in result.get('Contents'):
        url = s3_client.generate_presigned_url('get_object', Params={
            'Bucket': S3_BUCKET_NAME, 'Key': o.get('Key')}, ExpiresIn=SIGNED_URL_TIMEOUT)
        pth = Path(o.get('Key'))
        fn = pth.with_suffix('').stem
        print(fn)
        try:
            ffmpeg_cmd = "/opt/bin/ffmpeg -fflags  genpts -i '{input}' -r 24 '/mnt/efs/{output}.mp4'".format(
        input=url, output=fn)
            command1 = shlex.split(ffmpeg_cmd)
            p1 = subprocess.run(
                command1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            print("P1 Data",p1)
            # p2 = os.system('ls -l /mnt/efs')
            print(p2)
        except Exception as e:
            print("[ERROR_OCCUREED]",e)
            raise e
    return {
        'statusCode': 200,
        'body': json.dumps('Processing complete successfully')
    }
 

введите описание изображения здесь

Комментарии:

1. В чем ошибка? В какой строке он выходит из строя?

2. Убедитесь, что целевая папка, в которую вы записываете, включена с разрешениями на запись для пользователя сценария

3. Как включить разрешение на запись для целевой папки ? @Крис

4. Функции @JeremyThompson успешно выполняются, но файл не хранится в папке EFS, как я предупреждал

5. @Крис, я прикрепил еще одно изображение для хранения EFS, пожалуйста, проверьте