我有返回Cloud Front签名Cookie值的代码。
CookiesForCustomPolicy signedCookiesUrl = AmazonCloudFrontCookieSigner.GetCookiesForCustomPolicy("https://example.cloudfront.net/movies/nature.mp4", new StreamReader(File.OpenRead(Path.Combine(AppContext.BaseDirectory, "pk-2.pem"))),"APKEXAMPLEKEYID", DateTime.Now.AddDays(10), DateTime.Now, null);
我使用返回值来请求对象,但是返回
<Error>
<Code>MissingKey</Code>
<Message>
Missing Key-Pair-Id query parameter or cookie value
</Message>
</Error>.
我通过PostMan工具对此进行了测试,将头文件和直接请求通过Chrome浏览器,仍然得到相同的错误。
我使用了正确的Cloudfront密钥对和正确的资源URL。我的对象是私有的,cloudfront可以访问它。为了让它正常工作,我还需要做什么吗?
发布于 2020-08-19 04:51:46
当我们使用PUBLIC_KEY和PRIVATE_KEY时,我们会得到丢失的密钥对Id。我们应该使用访问密钥Id而不是PUBLIC_KEY,这样它就会完美地工作。
发布于 2017-09-29 18:27:23
添加头部密钥对
这些不是原始报头,它们是cookies。虽然我不使用邮递员,但听起来这是你的问题:
根据您所说的,您不会像这样添加它们:
[CloudFront-Key-Pair-Id, APKEXAMPLEQQ]
相反,它应该看起来更像这样:
[Cookie, CloudFront-Key-Pair-Id=APKEXAMPLEQQ]
发布于 2017-09-30 13:35:15
下面是C#中带签名的网址的示例。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreateSignatureInCSharp.html
返回签名密钥时,可以返回查询字符串参数或Cookie。
您可以通过两种方式将cookies返回到API网关:任意集成和原样返回headers。
如果您使用其他方法,则需要返回json数据,并将json数据映射到API Gateway中的headers。
希望能有所帮助。
https://stackoverflow.com/questions/46469769
复制相似问题