#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, пожалуйста, проверьте