我可以生成一个有效的预签名 URL 来列出 S3 存储桶的部分内容。
如果我将它粘贴到浏览器中或使用 hurl.it 效果很好
但是,在 jQuery Ajax GET 调用中,签名失败。
我在提琴手中查看了请求,它确实在请求中附加了一个参数,这可能是回调。
我在 hurl.it 中尝试过,它也失败了。对于 Amazon Signature 4 来说,Ajax 添加的额外参数似乎是一个阻碍。
我会将它传递给我的服务器进行签名,但不幸的是 Ajax 是事后的,所以 AFAIK 无法提前指定回调参数。
奇怪的是使用 C# SDK 生成一个预签名的 URL,这个额外的参数在 Ajax 中不是问题。但不幸的是,SDK 没有提供我所知道的用于生成预签名 URL 以列出存储桶内容的机制。只是为了得到一个对象。
所以预签名的 URL 不是问题。据我所知,标题也不是。似乎它希望所有查询参数都与我签署的内容相匹配。
我已经在这里待了将近 2 天,到目前为止我还很接近。
非常感谢有经验的 s3 / ajax 用户提供的任何见解。
谢谢!