Php 尝试列出Devpay S3存储桶-获取;“签名不匹配”;错误
我想做什么:Php 尝试列出Devpay S3存储桶-获取;“签名不匹配”;错误,php,amazon-s3,Php,Amazon S3,我想做什么: 我正在尝试列出Devpay S3存储桶 我使用的参考资料: 1. 2. 3. 我是怎么做的: 使用PHP libcURL库的简单REST GET请求: GET / HTTP/1.1 Host: s3.amazonaws.com Date: $date X-Amz-Date: $date X-Amz-Security-Token: $userToken, $productToken Authorization: $signatureValue 在哪里 这根绳子- GET\n
我正在尝试列出Devpay S3存储桶 我使用的参考资料:
1.
2.
3. 我是怎么做的:
使用PHP libcURL库的简单REST GET请求:
GET / HTTP/1.1
Host: s3.amazonaws.com
Date: $date
X-Amz-Date: $date
X-Amz-Security-Token: $userToken, $productToken
Authorization: $signatureValue
在哪里
这根绳子-
GET\n
""\n
""\n
$date\n
$canonicalized_AMZ_Headers\n
/
我正在使用curl\u exec()
执行GET请求
我收到的错误:
“签名不匹配”“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法” 谢谢
非常感谢S3返回的错误消息中的任何帮助将是StringToSign元素(使用View Source可以更清楚地看到它)。仔细将其与您为签署请求而附加在一起的字符串进行比较-它们必须完全相同。S3返回的要签署的字符串中没有
$date
。。。所以我把它拿走了。比较my$stringToSign
和Amazon返回的stringToSign,两者似乎相同;不幸的是,错误也是如此:(签名的S3 URL应该始终包含过期时间。过期时间还需要设置为查询参数。有关确切的详细信息,请参阅。我不是PHP人员(也不是Devpay人员!),但AWS确实提供了一个可以处理大部分muck.HTH的。谢谢Uriah-我没有使用签名URL。我通过排除x-amz-date头并包含一个常规的“date:…”来解决这个问题
header。另外,当不是标准化形式时,需要单独列出这两个安全令牌。另外,不幸的是,php sdk不能与devpay s3 bucket一起工作:(-感谢您的所有输入
GET\n
""\n
""\n
$date\n
$canonicalized_AMZ_Headers\n
/