经传经传证券炒股软件下载有用吗?

您还可以使用以下方式登录
当前位置:&>&&>& > OSS的错误响应
OSS的错误响应
&  OSS的错误响应  当用户访问OSS出现错误时,OSS会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。  OSS的错误响应格式  当用户访问OSS出错时,OSS会返回给用户一个合适的3xx,4xx或者5xx的HTTP状态码;以及一个application/xml格式的消息体。  错误响应的消息体例子:  AccessDeniedQuery-string authentication requires the Signature,Expires and
OSSAccessKeyId   ◆ 所有错误的消息体中都包括以下几个元素:  ● Code:OSS返回给用户的错误码。  ● Message:OSS给出的详细错误信息。  ● RequestId:用于唯一标识该次请求的UUID;当你无法解决问题时,可以凭这个RequestId来请求OSS开发工程师的帮助。  ● HostId:用于标识访问的OSS集群(目前统一为)。  其他特殊的错误信息元素请参照每个请求的具体介绍。  OSS的错误码  OSS的错误码列表如下:
HTTP状态码
AccessDenied
BucketAlreadyExists
Bucket已经存在
BucketNotEmpty
Bucket不为空
FileGroupTooLarge
文件组过大
FilePartStale
文件Part过时
InvalidArgument
参数格式错误
InvalidAccessKeyId
Access ID不存在
InvalidBucketName
无效的Bucket名字
InvalidObjectName
无效的Object名字
InvalidPart
无效的Part
InvalidPartOrder
无效的part顺序
InternalError
OSS内部发生错误
MissingContentLength
缺少内容长度
NoSuchBucket
Bucket不存在
文件不存在
NotImplemented
无法处理的方法
PreconditionFailed
预处理错误
RequestTimeTooSkewed
发起请求的时间和服务器时间超出15分钟
RequestTimeout
SignatureDoesNotMatch
TooManyBuckets
用户的Bucket数目超过限制
欢迎转载:
推荐:    查看: 5896|回复: 2
发送到OOS的请求如何签名验证?
该用户从未签到
PS: 实际上OOS并不推荐开发者自己通过算法去构造签名,而是建议使用SDK来进行开发,但为了满足一些用户的特殊需求,我们还是对签名这块特别介绍一下。
1.1 用户签名验证(Authentication)OOS通过使用Access Key ID/Secret Access Key对称加密的方法来验证某个请求的发送者身份。Access Key ID和Secret Access Key在注册后自动随机生成,并会发送到用户的注册邮箱中。当用户想以个人身份向OOS发送请求时,需要首先将发送的请求按照OOS指定的格式生成签名字符串;然后使用Secret Access Key对签名字符串进行加密产生验证码。OOS收到请求以后,会通过Access Key ID找到对应的SecretAccess Key,以同样的方法提取签名字符串和验证码,如果计算出来的验证码和提供的一样,即认为该请求时有效的;否则,OOS将拒绝处理这次请求,并返回错误码。
1.1.1 Head中包含签名用户可以在HTTP请求中增加Authorization(授权)的Head来包含签名信息,表明这个消息已被授权。如果用户的请求中没有Authentication字段,则认为是匿名访问。验证码计算方法如下:& && && && & & && && & &Authorization:& &&&AWS& +& &&&AccessId + &:& + Signature& &&&Signature& &&&=Base64( HMAC-SHA1( YourSecretAccessKey, UTF-8-Encoding-Of( StringToSign )& &&&) ) ;& &&&StringToSign& &&&= HTTP-VERB + &\n& +& &&&Content-MD5& &&&+ &\n& +& &&&Content-Type& &&&+ &\n& +& &&&Date + &\n& +& &&&CanonicalizedAmzHeaders& &&&+& &&&CanonicalizedR& &&&
& &&&& && &
1) Content-Md5表示请求内容数据的MD5值;2)&&CONTENT-TYPE表示请求内容的类型;3)&&DATE表示此次操作的时间,且必须为HTTP1.1中支持的GMT格式;4)&&CanonicalizedAmzHeaders表示http中的object user meta组合;5)&&CanonicalizedResource表示用户想要访问的OOS资源构建CanonicalizedAMZHeaders的方法所有以“x-amz-”为前缀的HTTP Header被称为CanonicalizedAMZHeaders。它的构建方法如下: & && &&&& && && & 1) 将所有以“x-amz-”为前缀的HTTP请求头的名字转换成小写字母。如’X-AMZ-Meta-Name: fred’转换成’x-amz-meta-name: fred。 & &&&2) 将上一步得到的所有HTTP请求头按照字典序进行升序排列。 & &&&3) 如果有相同名字的请求头,则根据标准RFC 章进行合并(两个值之间只用逗号分隔)。如有两个名为’x-amz-meta-name’的请求头,对应的值分别为’ fred’ 和’ barney’,则合并后为:’x-amz-meta-name: fred,barney’。 & &&&4) 删除请求头和内容之间分隔符两端出现的任何空格。如’x-amz-meta-name:&&fred, barney’转换成:’x-amz-meta-name: fred,barney’。 & &&&5) 将所有的头和内容用’\n’分隔符分隔拼成最后的CanonicalizedAMZHeader。 & &&&
& &&&& && &
构建CanonicalizedResource的方法
用户发送请求中想访问的AMZ目标资源被称为CanonicalizedResource。它的构建方法如下:& && &&&& && && & 1) 将CanonicalizedResource置成空字符串(“”); & &&&2)& &&&放入要访问的AMZ资源:“ /BucketName/ObjectName”(无ObjectName则不填) & &&&3)& &&&如果请求的资源包括子资源(sub-resource),那么将所有的子资源按照字典序,从小到大排列并以’&’为分隔符生成子资源字符串。在CanonicalizedResource字符串尾添加“?”和子资源字符串。此时的CanonicalizedResource例子如:/BucketName/ObjectName?acl& &&&&uploadId=UploadId & &&&4)& &&&如果用户请求在查询字符串(query string)中指定了要重写(override)返回请求的header,那么将这些查询字符串及其请求值按照字典序,从小到大排列,以’&’为分隔符,按参数的字典序添加到CanonicalizedResource中。此时的CanonicalizedResource例子: & &&&/BucketName/ObjectName?acl&response-content-type=ContentType& &&&& uploadId =UploadId & &&&
& &&&& && &
使用Base64编码
HMAC请求签名必须使用Base64编码。Base64编码将签名转换为简单的能附加到请求中的ASCII编码字符串。加号和斜杠这两个字符不能直接在URL中使用,必须经过编码。比如,如果授权编码包括加号,在URL中把它编码成为%2B。对更多Based64编码信息,查看Amazon S3代码示例。时间戳说明在签名时必须使用时间戳,可以用HTTP的Date请求头,也可以用x-amz-date请求头。时间戳中的时间和OOS的系统时间不能相差15分钟以上,否则,OOS会返回错误码RequestTimeTooSkewed。有些HTTP客户端不能设置Date请求头,如果你在签名时设置Date请求头有困难,那么你可以使用x-amz-date请求头来传送时间戳。x-amz-date请求头需要符合RFC 2616 的格式 ()。当请求中包含x-amz-date头时,OOS在计算签名时会忽略Date头。所以如果请求中有x-amz-date头,在客户端计算签名时,Date头的值应设置为空串。
1.1.2 URL中包含签名除了授权头以外,用户可以通过URL中加入签名信息的方式,将该URL转给第三方实现授权访问。这对于使用第三方浏览器获取对象存储数据的用户非常有用,不需要代理请求。这种方式通过构造并加密一个终端用户浏览器可以检索到的预签名的请求来实现,同时设置过期时间来标明预签名的有效期。URL中包含签名的示例如下:& &&&& && &&&/quotes/nelson?AWSAccessKeyId=44CF2F707&Expires=&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D& & & &
& & &&URL中包含签名的示例如下:
在URL中实现签名,必须至少包含Signature,Expires,AWSAccessKeyId三个参数。请求参数&&请求字符串参数名称&&示例中的值描述AWSAccessKeyIdAKIAIOSFODNN7EXAMPLE用户在OOS平台注册时候的邮箱。制定了OOS安全存取码用来表示请求,并且间接地识别开发者发送的请求Expires定义里签名过期时间,按照秒来计算的。服务器端超过这个时间的请求将被拒绝SignaturevjbyPxybdZaNmGa%2ByT272YEAiv4%3DURL是按照HMAC-SHA1的StringToSign的Base64编码方式编码Expires这个参数的值是一个UNIX时间(自UTC时间号开始的秒数,详见wiki),用于标识该URL的超时时间。如果OOS接收到这个URL请求的时候晚于签名中包含的Expires参数时,则返回请求超时的错误码。例如:当前时间是,开发者希望创建一个60秒后自动失效的URL,则可以设置Expires时间为。所有的OOS支持的请求和各种Head参数,在URL中进行签名的方法和上节介绍的签名算法基本一样。主要区别如下:1) 通过URL包含签名时,之前的Date参数换成Expires参数。2) 不支持同时在URL和Head中包含签名。3) 如果传入的Signature,Expires,AWSAccessKeyId出现不止一次,以第一次为准。4) 请求先验证请求时间是否晚于Expires时间,然后再验证签名。
该用户从未签到
天翼云储存跟金山云储存都是兼容AWS S3的,为什么国内的阿里云OSS还要自己搞一个标准
该用户从未签到
enj0y 发表于
天翼云储存跟金山云储存都是兼容AWS S3的,为什么国内的阿里云OSS还要自己搞一个标准&&...
阿里云其实也是把S3的协议改改名字而已,里面的接口基本都一样,可能阿里觉得完全照抄掉面子吧
服务与支持
咨询热线 400-810-9889
合作加盟 010-
&2012中国电信云计算分公司版权所有&京ICP备 号&&增值电信业务经营许可证A2.B1.B2-&
公司地址:北京市西城区金融大街31号1-1613}

我要回帖

更多关于 经传炒股软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信