云服务器内容精选

  • 解决方法 检查endpoint 使用OBS SDK时需要检查此项。 正确的endpoint格式为obs.regionID.myhuaweicloud.com,当用户将endpoint错误地填写为桶访问域名(bucketname.obs.regionID.myhuaweicloud.com),即在endpoint前多加了桶名,也会报签名不匹配错误。 检查AK、SK 请确保AK、SK输入正确,成对匹配,且与请求所用AK、SK保持一致。 检查HTTP-Verb 签名所用HTTP-Verb与请求所用HTTP-Verb保持一致。 检查Date/Expires Header中携带签名:检查签名所用Date与请求头域所带Date是否一致。 URL中携带签名:检查签名所用Expires与请求URL中的Expires参数是否一致。 如果使用URL签名计算工具,工具中Expires参数设置的是一个时间段,以秒为单位,比如一小时为3600。工具最终生成的URL中的Expires值为有效期的最后时间点。 检查头域 检查Content-MD5、Content-Type、Canonicalized Headers,如果计算签名时有包含在内,发送请求时也必须带上对应的头域。 如果直接在浏览器中使用携带签名的URL访问OBS资源,因为这种方式不能携带头域参数,故在计算签名时也不能携带此类头域。 检查Canonicalized Resource Canonicalized Resource表示请求访问的obs资源,请严格按照API文档中Canonicalized Resource参数的规范设置。详情请参见Header中携带签名或URL中携带签名。 检查StringToSign StringToSign的构造规则为: Header中携带签名: HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedHeaders + CanonicalizedResource URL中携带签名: HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Expires + "\n" + CanonicalizedHeaders + CanonicalizedResource 值为空的参数处直接换行。 检查签名算法 签名的计算方法: 构造请求字符串(StringToSign); 对第一步的结果进行UTF-8编码; 使用SK对第二步的结果进行HMAC-SHA1签名计算; 对第三步的结果进行Base64编码,header中携带的签名到此得到最终的签名; URL中携带的签名还需要对第4步的结果进行URL编码才能得到最终的签名。 签名验证方法请参见用户签名验证。