【问题标题】:How to view S3 bucket video files into browser如何在浏览器中查看 S3 存储桶视频文件
【发布时间】:2020-07-25 19:17:39
【问题描述】:

在我当前的项目中,我的目标是从 AWS S3 存储桶访问视频文件(mp4)。 我创建了名为 videostreambucketpankesh 的 S3 存储桶。这是一个公用文件夹,具有以下权限(如下)。

videostreambucketpankesh桶的访问控制列表(ACL)如下:

videostreambucketpankesh桶的桶策略如下:

现在存储桶“videostreambucketpankesh”包含许多子文件夹(或子存储桶),其中包括一个名为“video”的子文件夹。该子桶包含一些.mp4 文件(如下图所示)。

我的问题是,当我点击它的objectURL时,浏览器可以直接访问一些文件(例如firetruck.mp4ambulance.mp4)。我可以在浏览器中播放它们。

但是,当我单击其 objectURL 时,我无法在浏览器中播放 其他 .mp4 (39cf9079-7b65-4aa8-8913-8a6b924021d3.mp4, 45fd1749-95aa-488c-ac2f-be8673b8416e.mp4, 8ba187f2-5148-49f6-9acc-2459e41f547b.mp4) 文件。

请注意,我使用 Python 中的 Python 程序以编程方式 上传 39cf9079-7b65-4aa8-8913-8a6b924021d3.mp4, 45fd1749-95aa-488c-ac2f-be8673b8416e.mp4, 8ba187f2-5148-49f6-9acc-2459e41f547b.mp4 视频文件(参见以下代码)。

def upload_to_s3(local_file, bucket, s3_file):
    data = open(local_file, 'rb')
    s3_client.put_object(Key="video/"+frame_id+".mp4", Body=data, ContentType='video/mp4', Bucket = s3_bucket)
    print("Upload succcessful")

但是,我无法在我的 Google chrome 浏览器中播放 mp4 文件(我在 VLC 播放器中播放)。 您能否建议我如何解决此问题?强>

【问题讨论】:

    标签: python amazon-web-services amazon-s3


    【解决方案1】:

    选择文件并查看属性/元数据

    它应该像这样显示Content-Type : video/mp4

    通过浏览器上传时,会根据文件类型自动设置元数据。

    如果您通过自己的代码上传,您可以像这样设置元数据:

    s3_client.upload_file('video.mp4', bucketname, key, ExtraArgs={'ContentType': "video/mp4"})
    
    or
    
    bucket.put_object(key, Body=data, ContentType='video/mp4')
    

    见:AWS Content Type Settings in S3 Using Boto3

    【讨论】:

    • 非常感谢约翰!根据您的建议,我已使用“Content-Type”修改了我的 Python 文件:video/mp4”。我可以看到视频文件属性“Content-type”:“video/mp4”现在已更改。但是,我仍然无法在 Google Chrome 浏览器中播放我的 mp4 文件。请推荐!!!再次感谢您的帮助!!!!
    • 查看有效有效的文件元数据,并将它们与无效有效的文件进行比较。看看你能不能找到不同之处。此外,下载文件并尝试在您的计算机上播放,以确认文件包含正确的视频数据。
    • 非常感谢约翰的帮助!现在已经修复了。
    • 解决方案是什么?
    猜你喜欢
    • 2021-09-12
    • 2022-01-06
    • 2018-10-04
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多