v2 のコードを v3 に移行しようとしていますが、この行を移行する方法を見つけるのに問題があります。
kinesisVideoArchivedContent.endpoint = new AWS.Endpoint(DataEndpoint)
上記のコードは、getHLSStreamingSessionURL で使用されるいくつかのプロパティを持つ obj エンドポイントを作成します。
/*First you have to get de data endpoint calling getDataEndpoint*/
export const getEndPoint = (streamNme) => {
return new Promise((resolve, reject) => {
kinesisVideo.getDataEndpoint({
StreamName: streamName,
APIName: "GET_HLS_STREAMING_SESSION_URL"
}, function (err, response) {
if ( err ) {
return console.error(err);
}
// console.log('Data endpoint: ' + response.DataEndpoint);
resolve(response.DataEndpoint)
});
})
export const getStream = (StreamName, DataEndpoint) => {
return new Promise((resolve, reject) => {
kinesisVideoArchivedContent.endpoint = new AWS.Endpoint(DataEndpoint)
const PlaybackMode = 'LIVE'
const FragmentSelectorType = 'SERVER_TIMESTAMP'
const SESSION_EXPIRATION_SECONDS = 60 * 60
const params = {
StreamName,
PlaybackMode,
HLSFragmentSelector: {
FragmentSelectorType,
},
Expires: parseInt(SESSION_EXPIRATION_SECONDS),
}
kinesisVideoArchivedContent.getHLSStreamingSessionURL(params, (err, response) => {
if (err) {
reject(StreamName)
return
}
resolve(response.HLSStreamingSessionURL)
})
})
}
バージョン 3 の公式ドキュメント: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-kinesis-video-archived-media/classes/gethlsstreamingsessionurlcommand.html
import { KinesisVideoArchivedMediaClient, GetHLSStreamingSessionURLCommand } from "@aws-sdk/client-kinesis-video-archived-media"; // ES Modules import
/*before the code below you have to call getDataEndpointCommand */
const client = new KinesisVideoArchivedMediaClient(config);
const command = new GetHLSStreamingSessionURLCommand(input);
const response = await client.send(command);
バージョン 3 のこのコードは正常に動作しているようで、2 つのプロパティ @mediadata と未定義の HLSStreamingSessionURL を持つ obj で 200 を返します。v3 にはこの行がないと思うので、常に未定義を返します。
kinesisVideoArchivedContent.endpoint = new AWS.Endpoint(DataEndpoint)
前もって感謝します