Можно ли воспроизводить видео в формате HTML с частным видео, сохраненным в AWS S3? - PullRequest
0 голосов
/ 07 января 2020

Когда ресурсы публикуются c проблем нет, но я хочу повысить безопасность хранимых ресурсов, поэтому я подумал, что могу Блокировать все публичные c доступ к своему ведру. Тогда я мог получить доступ к этим ресурсам только с помощью аутентифицированных вызовов API. На данный момент нет проблем, я все еще могу загрузить эти файлы, используя мои ключи API. Но мне также нужно иметь возможность воспроизводить сохраненные видео.

Самый простой способ, который я знаю, - это использовать HTML video Tag , где вы настраиваете только ср c собственность. Понятно, что видео не будет загружено, потому что оно заблокировано, и мне нужно авторизоваться, чтобы получить к нему доступ. Но я не могу установить свои учетные данные здесь. как мне это сделать? Есть ли видеопроигрыватель, который выполняет эту аутентификацию?

Я могу изменить политику корзины, чтобы разрешить моему сайту доступ к этим ресурсам, но я не знаю, действительно ли я сохраняю сохраненные ресурсы. Если кто-то знает URL-адрес какого-либо файла (возможно, через bruteforce), загрузка этого файла через мой сайт будет очень простой. Что мне нужно, так это то, что эти ресурсы довольно безопасны, и никто не может даже связаться с ними, кроме владельца этих файлов, потому что они могут содержать конфиденциальную информацию.

1 Ответ

1 голос
/ 07 января 2020

Одним из решений было бы просто иметь отдельную независимую корзину S3 исключительно для публикуемых c ресурсов (таких как видео, которое всегда будет опубликовано c по своей природе).

Это также возможно загрузить видео в приватное ведро, и для этого sh вы ищете так называемый предварительно подписанный URL .

Это может быть вызывается через JavaScript, используя AWS SDK:

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script>

const s3 = new AWS.S3({
    signatureVersion: 'v4'
});
const params = {Bucket: 'XXXXX', Key: 'XXXXX'};
const url = s3.getSignedUrl('getObject', params);

Или создается с помощью AWS CLI:

aws s3 presign s3://awsexamplebucket/test2.txt

Это создаст URL, который будет использоваться по умолчанию 1 час, и на него можно напрямую ссылаться в HTML:

https://s3-eu-west-1.amazonaws.com/bucket/file_name.mp4?AWSAccessKeyId=XXXXX&Expires=XXXXX&Signature=XXXXX

Чтобы указать пользовательский таймфрейм, просто добавьте флаг --expires-in:

aws s3 presign s3://awsexamplebucket/test2.txt --expires-in 604800
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...