从 lambda 函数将媒体注入 AWS MediaPackage
Injecting media to AWS MediaPackage from lambda function
我正在尝试使用 nodejs 将 hls 媒体从 lambda 函数传送到 AWS MediaPackage 输入端点。
我正在执行以下操作并且似乎正在推送媒体文件块(ts 文件):
const auth = 'Basic ' + Buffer.from(endpoints[0].Username + ':' + endpoints[0].Password).toString('base64');
const options = {
hostname: endpoints[0].Url.hostname,
path: endpoints[0].Url.path,
headers: {
'Content-Type': 'application/json',
'Authorization': auth,
'Content-Length': Buffer.byteLength(data.Body)
},
body: data.Body // body of ts file
};
console.log(options);
const res = await httpsPut(options); //Promise using https put to send the body in options
但是,我在 CloudWatch 中没有看到任何到 MediaPackage 通道的日志
这是将注入媒体发送到 MediaPackage 的正确方法吗?我找不到任何文档
谢谢,
好吧,我终于按照文档进行了尝试并尝试了一些错误。在 this MediaPackage documentation they mention that it only supports webdav auth so I ended up using a webdav module 中处理文件的放置。
假设您传递的是有效输入,工作解决方案最终如下所示:
/**
* Helper PUT with Webdav and digest authentication to AWS MediaPackage
* @param mediaPackageEndpoints
* @param fileName
* @param data
*/
const putToMediaPackage = async function(mediaPackageEndpoints, fileName, data) {
const url = new URL(mediaPackageEndpoints[0].Url);
const client = createClient(
url.toString().replace('/channel', ''),
{
username: mediaPackageEndpoints[0].Username,
password: mediaPackageEndpoints[0].Password,
digest: true
}
);
await client.putFileContents(fileName, data);
return client;
}
我正在尝试使用 nodejs 将 hls 媒体从 lambda 函数传送到 AWS MediaPackage 输入端点。 我正在执行以下操作并且似乎正在推送媒体文件块(ts 文件):
const auth = 'Basic ' + Buffer.from(endpoints[0].Username + ':' + endpoints[0].Password).toString('base64');
const options = {
hostname: endpoints[0].Url.hostname,
path: endpoints[0].Url.path,
headers: {
'Content-Type': 'application/json',
'Authorization': auth,
'Content-Length': Buffer.byteLength(data.Body)
},
body: data.Body // body of ts file
};
console.log(options);
const res = await httpsPut(options); //Promise using https put to send the body in options
但是,我在 CloudWatch 中没有看到任何到 MediaPackage 通道的日志
这是将注入媒体发送到 MediaPackage 的正确方法吗?我找不到任何文档
谢谢,
好吧,我终于按照文档进行了尝试并尝试了一些错误。在 this MediaPackage documentation they mention that it only supports webdav auth so I ended up using a webdav module 中处理文件的放置。
假设您传递的是有效输入,工作解决方案最终如下所示:
/**
* Helper PUT with Webdav and digest authentication to AWS MediaPackage
* @param mediaPackageEndpoints
* @param fileName
* @param data
*/
const putToMediaPackage = async function(mediaPackageEndpoints, fileName, data) {
const url = new URL(mediaPackageEndpoints[0].Url);
const client = createClient(
url.toString().replace('/channel', ''),
{
username: mediaPackageEndpoints[0].Username,
password: mediaPackageEndpoints[0].Password,
digest: true
}
);
await client.putFileContents(fileName, data);
return client;
}