LinkedIn API:上传视频返回500



根据LinkedIn API文档,我正在尝试推送视频。不幸的是,我得到一个500错误,没有任何细节当我运行PUT请求与二进制视频文件在给定端点从初始化请求。我的视频符合视频规格。

我错过什么了吗

几天前我也遇到过同样的情况。

解决方案是:

如果您的文件大于4MB,则必须对文件进行分区。在初始化上传中,你会得到一个uploadUrls列表。因此,使用每个链接的部分文件。

感谢@ARGOUBI Sofien的回答。我发现我的错误:fileSizeBytes值是错误的,只给了我一个上传链接。有了好的值,我有几个端点。

我用body初始化upload:

{
"initializeUploadRequest": {
"owner": "urn:li:organization:MY_ID",
"fileSizeBytes": 10903312,
"uploadCaptions": false,
"uploadThumbnail": true
}
}

我得到了这样的回应:

{
"value": {
"uploadUrlsExpireAt": 1657618793558,
"video": "urn:li:video:C4E10AQEDRhUsYL99HQ",
"uploadInstructions": [
{
"uploadUrl": "https://www.linkedin.com/dms-uploads/C4E10AQEDRhUsYL99HQ/uploadedVideo?sau=aHR0cHM6Ly93d3[...]t3yak1",
"lastByte": 4194303,
"firstByte": 0
},
{
"uploadUrl": "https://www.linkedin.com/dms-uploads/C4E10AQEDRhUsYL99HQ/uploadedVideo?sau=aHR0cHM6Ly93d3cub[...]f13yak1",
"lastByte": 8388607,
"firstByte": 4194304
},
{
"uploadUrl": "https://www.linkedin.com/dms-uploads/C4E10AQEDRhUsYL99HQ/uploadedVideo?sau=aHR0cHM6Ly93d3cubGlua2V[...]V3yak1",
"lastByte": 10903311,
"firstByte": 8388608
}
],
"uploadToken": "",
"thumbnailUploadUrl": "https://www.linkedin.com/dms-uploads/C4E10AQEDRhUsYL9[...]mF3yak1"
}
}

看起来好多了✌️

编辑

经过几次测试,当我只有一个上传链接时,上传是ok的,但是当我有几个上传URL时,我没有从服务器得到任何响应。

我代码:

const uploadPromises: Array<() => Promise<AxiosResponse<void>>> = [];
uploadData.data.value.uploadInstructions.map((uploadInstruction: UploadInstructionType) => {
const bufferChunk: Buffer = videoStream.data.subarray(uploadInstruction.firstByte, uploadInstruction.lastByte + 1);
const func = async (): Promise<AxiosResponse<void>> => linkedinRestApiRepository.uploadMedia(uploadInstruction.uploadUrl, bufferChunk, videoContentType, videoContentLength);
uploadPromises.push(func);
});
let uploadVideoResponses: Array<AxiosResponse<void>>;
try {
uploadVideoResponses = await series(uploadPromises);
} catch (e) {
console.error(e);
}

事情是错误的,我们有几个上传链接,但我不知道😞

在我的情况下,我已经划分我的文件缓冲区为arrayBuffer然后你可以使用map来上传每个带有正确的urlUpload

的缓冲区

最新更新