• 阿里云河南授权服务中心--[ 阿里云精英级合作伙伴 ]
  • 阿里云河南授权服务中心电话 :0371-56982772

OSS服务签名及验证签名的方法
发布时间:2016-07-05 15:45

  用户可以在 HTTP 请求中增加 Authorization(授权)的 Head 来包含签名 (Signature)信息,表明这个消息已被授权。
  Authorization 字段计算方法如下:
  "Authorization: OSS " + Access Key Id + ":" + Signature Signature = base64(hmac-sha1(VERB + "\n" + CONTENT-MD5 + "\n" + CONTENT-TYPE + "\n" + DATE + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource))
  CONTENT-MD5    //表示请求内容数据的 MD5 值
  CONTENT-TYPE   //表示请求内容的类型 DATE 表示此次操作的时间,且必须为 HTTP1.1 中支持的 GMT 格式 CanonicalizedOSSHeaders    //表示 http 中的 object meta 组合
  CanonicalizedResource        //表示用户想要访问的 OSS 资源
  验证方法如下:
  >>> import base64,hmac,sha
  >>> base64.encodestring(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).digest()).strip(), '26NBxoKdsyly4EDv6inkoDft/yA='
  ('26NBxoKdsyly4EDv6inkoDft/yA=', '26NBxoKdsyly4EDv6inkoDft/yA=‘)
  首先,在python环境下import base64,hmac,sha 其次,输入签名参数。
  OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV 这个是key secret,测试过程需要替换成客户的key secret。
  Thu, 17 Nov 2005 18:49:58 GMT 和 /oss-example/nelson 分别是DATE和CanonicalizedResource,这两个是必选项。
  其他参数则视客户签名情况而定。
  注:DATE时间和OSS服务器时间正负不能超过15分钟,否则OSS服务器返回403。
  最后,26NBxoKdsyly4EDv6inkoDft/yA= 这个是签名最终计算结果,与OSS API 文档计算一致。
  注:DATE格式必须是http1.1 协议规定的GMT时间格式。

相关资讯

售前咨询:

0371-56982772