video - 如何通过 Linkedin API 上传视频?上传资产时出现 SignatureDoesNotMatch 错误
问题描述
根据linkedin文档上传视频有3个步骤。
- 注册上传请求。
我能够成功注册上传请求。
回复 :
{
"value": {
"uploadMechanism": {
"com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
"headers": {
"x-amz-server-side-encryption-aws-kms-key-id": "xxxx-xxxx-xxxx",
"x-amz-server-side-encryption": "aws:kms",
"Content-Type": "application/octet-stream"
},
"uploadUrl": "https://video-uploads-prod.s3-accelerate.amazonaws.com/KEY1/aws-userUploadedVideo?X-Amz-Algorithm=[ALGORITHM]&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption%3Bx-amz-server-side-encryption-aws-kms-key-id&X-Amz-Expires=86400&X-Amz-Credential=[CREDENTIAL]&X-Amz-Signature=[SIGNATURE]"
}
},
"mediaArtifact": "[ARTIFACT]",
"asset": "[ASSET]"
}
}
- 上传资产
我正在使用以下 curl 请求上传资产
curl -X POST \
'https://video-uploads-prod.s3-accelerate.amazonaws.com/KEY1/aws-userUploadedVideo?X-Amz-Algorithm=[ALGORITHM]&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption%3Bx-amz-server-side-encryption-aws-kms-key-id&X-Amz-Expires=86400&X-Amz-Credential=[CREDENTIAL]&X-Amz-Signature=[SIGNATURE]' \
-H 'Content-Type: application/octet-stream' \
-H 'x-amz-server-side-encryption: aws:kms' \
-H 'x-amz-server-side-encryption-aws-kms-key-id: xxxx-xxxx-xxxx' \
-F upload-file=@/Users/kaushik/Downloads/videoplayback.mp4
但是收到错误 403 Forbidden 的响应
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
我应该怎么做才能在linkedin中成功上传视频。
我发现了多年前在linkedin 不支持视频时提出的相同问题。
解决方案
可能使用了错误的curl,与api无关。在终端中尝试相同的操作。
推荐阅读
- delphi - Indy TIdHTTPServer.OnCommandGet - 连接到哪个端口?
- python - 从 re.findall 输出中删除引号
- c# - 我怎样才能得到符合一个条件的条目?
- javascript - 在嵌套数组中搜索不起作用,因为它应该起作用
- bash - 本地虚拟机上的 AWK 循环测试
- postgresql - 希望填充两个连续行之间的值及其在 postgres 中另一列的对应值
- c# - 使用 Swagger 向端点添加注释
- jenkins - Jenkins Cron 表达式运行超出计划
- laravel - Vuetable-2 无法安装在 Laravel 6 中
- c# - Azure Database Horizontal Sharding 多租户 C# asp.net 应用程序的最佳解决方案