Linkedin Api V2 загрузить видео в node JS - PullRequest
0 голосов
/ 09 января 2020

Я ищу загрузку в node JS видео через API-интерфейс linkedin V2, но я все еще получаю код состояния 403. Я правильно выполнил действия, описанные в документации. (https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/vector-asset-api#register -an-upload-for-video )

let req = request(`https://assets.mixkit.co/videos/2125/2125-720.mp4`)
.pipe(fs.createWriteStream('video.mp4'));

req.on('close', ()=>{
    request({
            url: uploadUrl,
            method: 'POST',
            headers: {
                "x-amz-server-side-encryption-aws-kms-key-id": "MY_ID",
                "x-amz-server-side-encryption": "aws:kms",
                "Content-Type": "application/octet-stream"
            },
            encoding: null,
            body: fs.createReadStream('video.mp4')
        }, (error, response, body) => {
                if (error) {
                    cb(error)
                } else {
                    cb({response: response, body: body, url: uploadUrl,})
                }
    });
});

Работает при использовании команды CURL https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/vector-asset-api#upload -the-video . , но мне нужно сделать это в node js.

Любая помощь с благодарностью:)

1 Ответ

0 голосов
/ 09 января 2020

наконец я нашел решение:)

Рабочий код

 let req = request(`https://assets.mixkit.co/videos/2125/2125-720.mp4`)
.pipe(fs.createWriteStream('video.mp4'));

req.on('close', ()=>{

    fs.readFile('video.mp4', function(err, data) {
    if (err) throw err;
    var encodedImage = new Buffer(data)

    request({
        url: url,
        method: 'PUT',
        headers: {
            "x-amz-server-side-encryption-aws-kms-key-id": "MY_ID",
            "x-amz-server-side-encryption": "aws:kms",
            "Content-Type": "application/octet-stream"
        },
        encoding: null,
        body: encodedImage
    }, (error, response, body) => {
            if (error) {
                cb(error)
            } else {
                cb({response: response, body: body, url: url, access_token: access_token, data: ''})
            }
});

}); });

...