Я пытаюсь настроить безопасную потоковую передачу с помощью Amazon s3 и Cloudfront. Я выполнил следующие шаги и всегда получаю сообщение об ошибке
"поток не найден".
- Установите корзину s3 и загрузите mp3-файл (file.mp3) для тестирования.
- Создал политику доступа к источнику в облачной среде, получил Id и S3 canonicle Used Id.
- Учитывая S3 canonicle User Id, права на чтение для корзины s3. (Для тестирования я также дал всем разрешение на чтение.)
- Создан открытый / закрытый ключ RSA для облачного интерфейса.
- Создано распределение потоковой передачи в облачной среде с предыдущей корзиной s3 в качестве источника и доверенным подписывающим лицом в качестве себя. Результат этого запроса показывает самодоверенного подписывающего с идентификатором открытого ключа.
- Создан подписанный URL с использованием закрытого ключа.
- Создан html файл, чтобы показать этот mp3 с помощью jwplayer.
Ниже приведен код, который я использовал для создания подписанного URL-адреса источника.
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
String distributionDomain = "sbngg4fbfkiq2.cloudfront.net";
String privateKeyFilePath = "src/s3access/pk-APKAJRHSQBGT5CW7P2CA.der";
String s3ObjectKey = "file.mp3";
// Convert your DER file into a byte array.
byte[] derPrivateKey = ServiceUtils.readInputStreamToBytes(new
FileInputStream(privateKeyFilePath));
String signedUrlCanned = CloudFrontService.signUrlCanned(
s3ObjectKey, // Resource URL or Path
"APKAJRHSQBGT5CW7P2CA.", // Certificate identifier,
// an active trusted signer for the distribution
derPrivateKey, // DER Private key data
new Date(112,3,29) // DateLessThan
);
System.out.println(signedUrlCanned);
Это дает подписанный URL. Затем я использовал следующий HTML-файл.
<html><head>
<script type='text/javascript' src='jwplayer.js'></script>
</head><body>
<div id="container">Loading the player ...</div>
<script type="text/javascript">
jwplayer('container').setup({
'id': 'playerID',
'width': '352',
'height': '240',
'provider': 'rtmp',
'streamer': 'rtmp://sbngg4fbfkiq2.cloudfront.net/cfx/st',
'file':
'file.mp3?Expires=1335637800&Signature=asSUSIbGYZP9IXnmjWIKgXMP2DCCA1B-x0mQtsQbUBFWdbKzlU~NnId8VH8T5ww8I1nbZKHWoLpGr679~QoDSMScKpVxVbyYVjQ0kn-JejzSkM6~ZEC6r8nArEdrT9R-M6EjR~IBkuPD-0qW2OUk1MBC4oiNeytIolG6IrSTGOU_&Key-Pair-Id=APKAJRHSQBGT5CW7P2CA',
'modes': [
{
type: 'flash', src: 'player.swf'
}
]
});
</script>
</body>
</html>
Отображает кадр видео. Нажатие на кнопку воспроизведения попыталось загрузить поток, но через пару секунд он говорит
Stream not foundfile.mp3?Expires=1335637800&Signature=asSUSIbGYZP9IXnmjWIKgXMP2DCCA1B-x0mQtsQbUBFWdbKzlU~NnId8VH8T5ww8I1nbZKHWoLpGr679~QoDSMScKpVxVbyYVjQ0kn-JejzSkM6~ZEC6r8nArEdrT9R-M6EjR~IBkuPD-0qW2OUk1MBC4oiNeytIolG6IrSTGOU_&Key-Pair-Id=APKAJRHSQBGT5CW7P2CA
Пожалуйста, помогите мне это настроить. Сообщите мне, если я что-то упустил.