调用OssClient类的相关接口时,[backcolor=transparent]如果抛出异常,则表明操作失败,否则操作成功。抛出异常时,方法返回的数据无效。OssClient类的接口异常时会抛出异常类
OssException 。
异常处理示例
try {
$ossClient->createBucket($bucket);
} catch (OssException $e) {
print("Exception:" . $e->getMessage() . "\n");
}
OssException
OssException指包括两类:
错误码 | 描述 | HTTP状态码 |
AccessDenied | 拒绝访问 | 403 |
BucketAlreadyExists | Bucket已经存在 | 409 |
BucketNotEmpty | Bucket不为空 | 409 |
EntityTooLarge | 实体过大 | 400 |
EntityTooSmall | 实体过小 | 400 |
FileGroupTooLarge | 文件组过大 | 400 |
FilePartNotExist | 文件Part不存在 | 400 |
FilePartStale | 文件Part过时 | 400 |
InvalidArgument | 参数格式错误 | 400 |
InvalidAccessKeyId | AccessKeyId不存在 | 403 |
InvalidBucketName | 无效的Bucket名字 | 400 |
InvalidDigest | 无效的摘要 | 400 |
InvalidObjectName | 无效的Object名字 | 400 |
InvalidPart | 无效的Part | 400 |
InvalidPartOrder | 无效的part顺序 | 400 |
InvalidTargetBucketForLogging | Logging操作中有无效的目标bucket | 400 |
InternalError | OSS内部发生错误 | 500 |
MalformedXML | XML格式非法 | 400 |
MethodNotAllowed | 不支持的方法 | 405 |
MissingArgument | 缺少参数 | 411 |
MissingContentLength | 缺少内容长度 | 411 |
NoSuchBucket | Bucket不存在 | 404 |
NoSuchKey | 文件不存在 | 404 |
NoSuchUpload | Multipart Upload ID不存在 | 404 |
NotImplemented | 无法处理的方法 | 501 |
PreconditionFailed | 预处理错误 | 412 |
RequestTimeTooSkewed | 发起请求的时间和服务器时间超出15分钟 | 403 |
RequestTimeout | 请求超时 | 400 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云对象存储服务(OSS)的SDK进行操作时,通过OssClient
类调用各种接口确实可能遇到异常情况。如您所提到的,这些异常会以OssException
的形式抛出,需要开发者进行适当的异常处理来确保程序的健壮性。下面是对您提供的信息的一个总结和补充说明:
OssException
try-catch
语句块包围可能会抛出异常的代码段,如创建Bucket的操作。OssException
,可以通过该异常对象的方法获取详细的错误信息,包括错误消息、HTTP状态码、错误码、错误描述、请求ID等,这对于诊断问题非常关键。try {
$ossClient->createBucket($bucket);
} catch (OssException $e) {
print("Exception:" . $e->getMessage() . "\n");
// 进一步获取并处理其他错误信息,如HTTP状态码、错误码等
$httpStatus = $e->getHTTPStatus();
$errorCode = $e->getErrorCode();
$requestId = $e->getRequestId();
// 可能的后续处理逻辑...
}
AccessDenied (403)
:表示没有足够的权限访问资源,需检查AccessKeyId、AccessKeySecret及策略设置。BucketAlreadyExists (409)
:尝试创建一个已存在的Bucket,应避免重复创建或使用已存在的Bucket。NoSuchBucket (404)
:请求的Bucket不存在,需确认Bucket名是否正确且已被创建。SignatureDoesNotMatch (403)
:签名验证失败,通常是因为密钥错误或签名算法问题。了解这些常见错误码及其含义有助于快速定位问题所在,并采取相应措施解决。在实际开发中,合理地利用异常处理机制,结合阿里云官方文档和开发者论坛资源,可以有效提升应用的稳定性和用户体验。