开发者社区> 问答> 正文

OSS下载返回OSS authentication requires a valid Date.

我在头部进行签名,获取到了Authorization,接着根据获取到的Authorization对oss发出请求。提示返回403错误,具体如下

<Error>
  <Code>AccessDenied</Code>
  <Message>OSS authentication requires a valid Date.</Message>
  <RequestId>566552C8229E6BA1F6702799</RequestId>
  <HostId>saas01.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>


获取到的签名我用官网的这个例子测试过,
import base64import hmacimport shah = hmac.new( "OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV", "PUT\nODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM=\ntext/html\nThu, 17 Nov 2005 18:49:58 GMT\nx-oss-magic:abracadabra\nx-oss-meta-author:foo@bar.com\n/oss-example/nelson", sha)Signature = base64.b64encode(h.digest())print( "Signature: %s" % Signature)

获取到的Authorization和官网是一样的,所以签名方法应该没错。但是用这个Authorization对OSS发出请求却出现上面的问题OSS authentication requires a valid Date
请问这是怎么回事,之前听说时间格式不对会出现这个问题,我设置的时间格式是正确的


另外如果按如下发送请求的话
PUT /nelson HTTP/ 1.0 Authorization :OSS 44 CF9590006BF252F707: 26NBxoKdsyly4EDv6inkoDft/yA= Content- Md5 : ODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM= Content- Type : text/html Date : Thu, 17 Nov 2005 18 : 49 : 58 GMT Host : oss-example.oss-cn-hangzhou.aliyuncs.com X- OSS- Meta- Author : foo@bar.com X- OSS- Magic : abracadabra




头部中的Date是不被允许的,添加到头部会出现  Refused to set unsafe header "Date" 错误,去掉Date这个有影响吗

展开
收起
f7anty 2015-12-07 17:44:19 21061 0
5 条回答
写回答
取消 提交回答
  • 我这样设置xmlhttp.setRequestHeader("x-oss-date",date); 后会再报一个签名失败的错误 但是换成xmlhttp.setRequestHeader("Date",date);在postman上是可以请求成功的

    更多参考OSS帮助文档,官网地址:https://help.aliyun.com/product/31815.html

    2021-11-30 20:48:11
    赞同 展开评论 打赏
  • 我这样设置xmlhttp.setRequestHeader("x-oss-date",date); 后会再报一个签名失败的错误 但是换成xmlhttp.setRequestHeader("Date",date);在postman上是可以请求成功的

    2020-05-08 15:58:32
    赞同 展开评论 打赏
  • ReOSS下载返回OSS authentication requires a valid Date.
    这个可以存网站图片吗? https://promotion.aliyun.com/ntms/act/oss-discount.html?userCode=r3yteowb
    2018-08-01 19:46:28
    赞同 展开评论 打赏
  • 回 1楼oss-dev的帖子
    我按你说的在头部添加x-oss-date,用签名去访问OSS下载地址,返回的数据是200,说明是可以访问的,但是却没数据




    而且OSS上面的文件变成了0KB

    请求如下
    xmlhttp.open( "PUT", url, false );
    xmlhttp.setRequestHeader("Authorization",authorization);
    xmlhttp.setRequestHeader("Content-MD5","");
    xmlhttp.setRequestHeader("Content-Type","image/png");
    xmlhttp.setRequestHeader("x-oss-date",date);
    xmlhttp.send();
    2015-12-08 10:53:36
    赞同 展开评论 打赏
  • Date是必须,设置不了Date,可以用x-oss-date代替Date
    2015-12-07 18:29:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载