Как просмотреть видео файлы S3 Bucket в браузере - PullRequest
0 голосов
/ 13 апреля 2020

В моем текущем проекте моя цель - получить доступ к видеофайлам (в mp4) из AWS S3 bucket. Я создал ведро S3 с именем videostreambucketpankesh. Это общедоступная папка c со следующим разрешением (следующим образом).

enter image description here

Список управления доступом (ACL) videostreambucketpankesh bucket выглядит следующим образом:

enter image description here

Политика ведра для videostreambucketpankesh ведра следующая: enter image description here

Теперь сегмент «videostreambucketpankesh» содержит множество подпапок (или подпакетов), включая одну подпапку с именем «video». Это вложенное ведро содержит некоторый файл .mp4 (как показано на рисунке ниже).

enter image description here

Моя проблема в том, что есть некоторые файлы (такие как как firetruck.mp4 и ambulance.mp4), к которым браузер может получить прямой доступ, когда я нажимаю его objectURL. Я могу играть в них в браузере.

Однако я не могу воспроизвести другие .mp4 (39cf9079-7b65-4aa8-8913-8a6b924021d3.mp4, 45fd1749-95aa-488c-ac2f-be8673b8416e.mp4, 8ba187f2-5148-49f6-9acc-2459e41f547b.mp4) файлы в браузере, когда я нажимаю на его objectURL.

Обратите внимание, что я загружаю 39cf9079-7b65-4aa8-8913-8a6b924021d3.mp4, 45fd1749-95aa-488c-ac2f-be8673b8416e.mp4, 8ba187f2-5148-49f6-9acc-2459e41f547b.mp4 видеофайл с помощью python программы программно в Python (см. Следующий код).

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")

Однако я не могу воспроизвести файл mp4 (я играю их в проигрывателе VL C) в моем браузере Google chrome. Подскажите, пожалуйста, как я могу решить эту проблему?

1 Ответ

1 голос
/ 13 апреля 2020

Выберите файлы и посмотрите на Свойства / Метаданные .

Должно отобразиться Content-Type : video/mp4, например:

Amazon S3 object metadata

Когда при загрузке через браузер метаданные автоматически устанавливаются на основе типа файла.

Если вы загружаете с помощью своего собственного кода, вы можете установить метаданные следующим образом:

s3_client.upload_file('video.mp4', bucketname, key, ExtraArgs={'ContentType': "video/mp4"})

or

bucket.put_object(key, Body=data, ContentType='video/mp4')

См .: AWS Настройки типа контента в S3 Использование Boto3

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