简介

<p><strong>1.&nbsp;Obs Endpoint类型</strong></p> <p><strong>(1)路径类型endpoint</strong></p> <p>内网域名*.cloud.pub类型的endpoint被称为路径类型的endpoint。比如obs-cn-shanghai-internal.cloud.pub是路径类型的endpoint。对于该类型的endpoint,请求中bucket是放到request URI中的。</p> <p>比如一个上传文件的请求:https://obs-cn-shanghai-internal.cloud.pub/<strong>mybucket</strong>/mykey</p> <p><strong>(2)五级域名类型endpoint</strong></p> <p>若endpoint为四级域名,且域名为公网域名,则此endpoint为五级域名类型的endpoint。比如endpoint obs-cn-shanghai.yun.pingan.com。此种请求需要在路径类型请求的基础上做修改:需要将bucket从request URI中剔除并移动到host的最前端,且将参数名为bucket的参数从请求中移除(如果有)。</p> <p>比如,对于上传文件的请求https://obs-cn-shanghai.yun.pingan.com/<strong>mybucket</strong>/mykey,其五级域名风格:https://<strong>mybucket</strong>.obs-cn-shanghai.yun.pingan.com/mykey。</p> <p>&nbsp;</p> <p><strong>2.&nbsp;签名生成规则</strong></p> <p>在Rest请求中,header Authorization生成规则如下:</p> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="vertical-align:top"> <p>StringToSign =</p> <p>HTTP-Verb + &quot;\n&quot; + Content-MD5 + &quot;\n&quot; + Content-Type + &quot;\n&quot; + Date + &quot;\n&quot; + userDefinedMetaHeaders + theRequestResource;</p> <p>Signature = Base64( HMAC-SHA1( secretKey, UTF-8 (StringToSign) ) );</p> <p>Authorization = &quot;AWS&quot; + &quot; &quot; + AWSAccessKeyId + &quot;:&quot; + Signature;</p> </td> </tr> </tbody> </table> <ul> <li>HTTP-Verb</li> </ul> <p>请求的动作,如括GET、PUT、DELETE等。</p> <ul> <li>\n</li> </ul> <p>表示换行符,必须加</p> <ul> <li>Content-MD5</li> </ul> <p>表示请求内容数据的MD5值,对消息内容(不包括头部)计算MD5值获得128比特位数字,对该数字进行base64编码而得到。该请求头可用于消息合法性的检查(消息内容是否与发送时一致)</p> <p>如&rdquo;eB5eJF1ptWaXm4bijSPyxw==&rdquo;,也可以为空</p> <ul> <li>Content-Type</li> </ul> <p>表示请求内容的类型,如&rdquo;application/octet-stream&rdquo;,也可以为空</p> <ul> <li>Date</li> </ul> <p>请求发起的GMT时间,如Fri, 14 Jul 2017 09:06:22 GMT</p> <ul> <li>userDefinedMetaHeaders</li> </ul> <p>用户定义的metadata将被设置到请求的头部。比如,设置一个name为color值为blue的metadata,需要添加一个请求头x-amz-meta-color:blue。此时,userDefinedMetaHeaders为x-amz-meta-color:blue。若有多个自定义的header,则按header name的自然顺序排序。比如,有三个自定义的header分别为width,height,color,则被签名的片段应该像这样:</p> <table border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="vertical-align:top"> <p>x-amz-meta-color:red</p> <p>x-amz-meta-height:10cm</p> <p>x-amz-meta-width:100cm</p> </td> </tr> </tbody> </table> <ul> <li>theRequestResource</li> </ul> <p>为请求的URL的uri+[?子资源]+[关键的自然顺序排序的参数name=value]列表。</p> <p>如请求为 http://{host}/{bucket}/{key}?partNumber=1&amp;uploadId=abc</p> <p>则theRequestResource为/{bucket}/{key}?partNumber=1&amp;uploadId=abc</p>
以上内容是否解决了您的问题?
请补全提交信息!
咨询·建议

电话咨询

400-151-8800

邮件咨询

cloud@pingan.com

在线客服

工单支持

解决云产品相关技术问题