Я пытаюсь настроить безопасную потоковую передачу с amazon s3 и cloudfront. Я сделал следующие шаги, и я всегда получаю сообщение об ошибке
"поток не найден".
- Настройка корзины s3 и загруженного файла mp3 (file.mp3) для тестирования.
- Создана исходная политика доступа в облачном фронте, получены Id и S3 canonicle Используемый идентификатор.
- При условии, что S3 canonicle User Id имеет права на чтение для корзины s3. (Для тестирования я также дал разрешение на чтение всем).
- Создан открытый / закрытый ключ RSA для облачного фронта.
- Создано потоковое распространение в облачном фронте с предыдущей корзиной s3 в качестве источника и Trusted Signer в качестве собственного. Результатом этого запроса является подписчик, которому можно доверять, с открытым ключом Id.
- Сгенерированный подписанный 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
Пожалуйста, помогите мне настроить это. Дайте мне знать, если я что-то упустил.