阅读907 返回首页    go 小米 go 小米6


OSS 403错误及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云

UserDisable.UserDisable错误

当您访问OSS遇到如下的UserDisable错误:

  1. <Code>UserDisable</Code>
  2. <Message>UserDisable</Message>

有以下两类原因:

  • 欠费被禁。确认欠费方法如下,在控制台上打开费用中心,检查是否欠费。如果有欠费,请及时充值。

    OSS欠费后,还可以正常使用24小时,24小时后禁止访问;历史数据保留15天,15天后历史数据将被删除。当您在消息中心看到“阿里云OSS欠费提醒”后,请及时充值,不会影响您的正常使用。

  • 安全原因被禁。请在控制台上打开消息中心,在右侧的安全消息中查看违规通知。违规的原因有很多,比如您使用OSS做私服,您的图片涉黄、涉暴等。

    当您有“安全消息”时,请立即按照消息中的指示做相应处理,以免影响您的使用和信用。比如当您看到如下的“OSS违规文件冻结处理通知”消息时,请马上删除违规文件。

注意:如果您有账户处于被禁状态,请务必处理;重新申请新账户,无法保证正常使用。

RequestTimeTooSkewed.The difference between…错误

访问OSS遇到如下的RequestTimeTooSkewed错误:

  1. <Code>RequestTimeTooSkewed</Code>
  2. <Message>The difference between the request time and the current time is too large.</Message>

原因是,您发送请求的时间与OSS收到请求的时间,间隔超出了15分钟,OSS从安全考虑认为该请求是无效的,返回上述错误。请检查发送请求设备的系统时间,并根据时区调整到正确时间。

您可能会有下面的疑问:

  • 发送请求的机器或设备的系统时间,调整标准是什么呢?
    OSS的系统时间采用GMT时间,您的设备的系统时间,需要调整到GMT时间,或与其相对应的时区时间。GMT(Greenwich Mean Time)是零时区的区时,即世界标准时间。例如,您的访问OSS的设备系统配置是东八区,系统时间调整到比GMT早8小时;其它类似。我国的标准时间—北京时间—就是东八区时间。如果您的系统时间是东八区,那么您的系统时间调整到北京时间即可。

    Windows系统查看时区的方法。通过 控制面板 > 时钟、语言和区域 > 设置日期和时间 打开日期和时间, 时区 栏的 +08:00,表示您的设备时区是东八区。

    如果您的系统是Linux/Unix,请执行 date -R 查看时间和时区。下图中的 +0800,表示您的设备系统时区是东八区。

  • 使用多个地域的OSS,比如杭州、新加坡、美国,时间同步有问题吗?
    没有问题。每个地域的OSS都使用GMT时间,您发送请求的设备系统时间也是GMT时间。

InvalidAccessKeyId.The OSS Access Key Id…错误

访问OSS遇到如下的错误:

  1. <Code>InvalidAccessKeyId</Code>
  2. <Message>The OSS Access Key Id you provided does not exist in our records.</Message>

原因是,您的AccessKeyID禁用或不存在。排查方法如下:登录阿里云控制台的 AccessKey 管理,确认访问OSS使用的AccessKeyID存在且处于启用状态。

  • 如果您的AccessKeyID处于禁用状态,请开启。
  • 如果您的AccessKeyID不存在请创建,并使用新的AccessKeyID访问OSS。

AccessDenied.The bucket you are attempting to…错误

访问OSS遇到如下的错误:

  1. <Code>AccessDenied</Code>
  2. <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>

原因是:您访问bucket使用的Endpoint不正确,如果您需要了解Endpoint的详细信息,请参看OSS 基本概念

怎么找到正确的Endpoint呢?如果SDK异常抛出如下的异常,或返回如下错误:

  1. <Error>
  2. <Code>AccessDenied</Code>
  3. <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
  4. <RequestId>56EA98DE8158040021B23EE6</RequestId>
  5. <HostId>my-oss-bucket-byb.oss-cn-qingdao.aliyuncs.com</HostId>
  6. <Bucket>my-oss-bucket-byb</Bucket>
  7. <Endpoint>oss-cn-hangzhou.aliyuncs.com</Endpoint>
  8. </Error>

其中Endpoint中的oss-cn-hangzhou.aliyuncs.com就是正确的Endpoint,请使用https://oss-cn-hangzhou.aliyuncs.comhttps://oss-cn-hangzhou.aliyuncs.com作为Endpoint访问OSS。如果错误中没有Endpoint,请登录OSS控制台,在Bucket管理中找到您访问的bucket,点击进入Bucket概览页面。在OSS域名中可以看到内网和外网域名。

外网域名是在公网上访问OSS使用的域名;内网域名是指在阿里云内部访问的OSS使用的域名,比如您在您的ECS上访问OSS,可以使用内网域名。

Endpoint是域名去掉bucket部分,加上访问协议。例如上图中 OSS的公网域名是oss-test-byb.oss-cn-hangzhou.aliyuncs.com,它的公网Endpoint是https://oss-cn-hangzhou.aliyuncs.com;类似,内网Endpoint是https://oss-cn-hangzhou-internal.aliyuncs.com

ImageDamage.The image file may be damaged错误

访问OSS遇到如下的错误:

  1. <Code>ImageDamage</Code>
  2. <Message>The image file may be damaged.</Message>

说明图片文件有部分信息丢失或损坏,导致无法正常识别或处理。您可能会有一个疑问,某图片在本地用图片处理器可以打开,OSS处理报错。原因是,图片浏览器会对损坏的图片做些处理,OSS图片服务暂时没有这个操作。

AccessDenied.AccessDenied错误

访问OSS遇到如下的错误:

  1. <Code>AccessDenied</Code>
  2. <Message>AccessDenied</Message>

说明访问OSS的用户没有当前操作的权限。请确认使用的AccessKeyID/AccessKeySecret是正确的。如果使用的是子帐号/临时账户(STS),请确认当前用户的权限。确认方法:在控制台的访问控制里查看该用户的权限,确认是否已经赋予当前用户Bucket/Object的操作权限。

SignatureDoesNotMatch.The request signature we calculated…错误

访问OSS遇到如下的错误:

  1. <Code>SignatureDoesNotMatch</Code>
  2. <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

请按照以下步骤排查:

  1. 检查endpoint
    请检查endpoint前面没有bucket,后面没有多余的/,前后没有多余的空格。比如下面的endpoint是不合法的,https://my-bucket.oss-cn-hangzhou.aliyuncs.comhttps://oss-cn-hangzhou.aliyuncs.com/、而 https:// oss-cn-hangzhou.aliyuncs.comhttps:// oss-cn-hangzhou.aliyuncs.com是合法域名。
  2. 检查AccessKeyID/AccessKeySecret
    请确认AccessKeyID/AccessKeySecret正确,确保AccessKeyID/AccessKeySecret前后都没有空格,特别是使用了复制粘贴的情况。
  3. 检查BucketName/ObjectKey
    请确保BucketName/ObjectKey命名合法有效,符合要求。
    • Bucket命名规范:只能包括小写字母、数字和短横线(-),必须以小写字母或者数字开头,长度必须在3-63字节之间。
    • Object的命名规范:使用UTF-8编码,长度必须在1-1023字节之间,不能以“/”或者“”字符开头。
  4. 如果是您自己实现的签名,请使用OSS SDK提供的签名方法。
    OSS SDK提供了URL/Header签名的实现,详细请参看SDK文档。
  5. 如果您的环境不适合使用SDK,的确需要自己实现签名,签名方法请参考用户签名验证,仔细检查每个签名字段。
    OSS的论坛上提供了一个可视化签名的工具,请比较每个签名字段和最后的签名,签名工具地址
  6. 如果您使用了代理,请检查代理服务器是否添加额外的Header。

其它错误

请根据SDK返回的错误码、错误信息判断原因,特别是错误信息会提示错误原因。如果怀疑错误跟网络环境有关,请使用ossprobe排查问题,ossprobe会给出可能的原因。

最后更新:2016-11-23 16:04:10

  上一篇:go OSS跨域资源共享(CORS)错误及排除__常见错误及排除_最佳实践_对象存储 OSS-阿里云
  下一篇:go PostObject错误及排查___常见错误及排除_最佳实践_对象存储 OSS-阿里云