首页 > 解决方案 > Elastic Beanstalk 上的 Django,如何将已编辑视频的输出文件保存到 S3 存储桶中

问题描述

对于初学者,我在 AWS Elastic Beanstalk 上运行 Django 服务,并尝试使用 moviepy 的ffmpeg_extract_subclip方法修剪视频的长度,然后将其保存到链接的 S3 存储桶中。

     media_storage = S3Boto3Storage()

     #used for targetname
     subclip_url = "temp/" + str(asset.id) + "-" + str(i) + ".mp4"

     #get url of file 
     asset_url = media_storage.url(str(asset.asset_url))
     self.create_clip(asset_url, subclip_url)
     if not media_storage.exists(subclip_url):
         curr_clip = open(settings.MEDIA_ROOT + "/" + subclip_url)
         object_file = files.File(curr_clip)
         media_storage.save(subclip_url,object_file)

我将其拆分ffmpeg_extract_subclip为下面的另一种方法

    def create_clip(self, asset_url, subclip_url):
        url = settings.MEDIA_ROOT + "/" + subclip_url
        ffmpeg_extract_subclip(asset_url, 0, 5, targetname=url)

我的想法是将编辑后的剪辑保存到本地目录,然后打开它,然后将其发送到 S3 存储桶。但是,在这种情况下,我permission denied在 EB 中ffmpeg_extract_subclip尝试将文件保存在 EB 系统中时(这是有道理的)。我是否应该尝试找到一种解决方案来覆盖这些权限,或者是否有更好的方法来编辑剪辑并通过 EB 将其发送到 S3?我在网上找到的大多数方法都需要 Python 将编辑后的文件保存到输出文件中。

PS对不起,如果我的问题不够清楚,我在这些板上发帖还是新手

标签: djangoamazon-web-servicesamazon-s3amazon-elastic-beanstalkmoviepy

解决方案


推荐阅读