首页 > 解决方案 > 如何通过 Linkedin API 上传视频?上传资产时出现 SignatureDoesNotMatch 错误

问题描述

https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/vector-asset-api#register-an-upload

根据linkedin文档上传视频有3个步骤。

  1. 注册上传请求。

我能够成功注册上传请求。

回复 :

{
    "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]"
    }
}
  1. 上传资产

我正在使用以下 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 不支持视频时提出的相同问题。

标签: videouploadpostmanlinkedinlinkedin-api

解决方案


可能使用了错误的curl,与api无关。在终端中尝试相同的操作。


推荐阅读