如何确定鸿蒙开发环境是否兼容?
COS SDK 当前适配的鸿蒙版本为 HarmonyOS-NEXT-DB1,API 为 12,后续鸿蒙系统稳定版本也会持续适配。
上传遇到Unsupported upload type错误怎么办?
可能是上传的ArrayBuffer不是由arkTs环境创建,例如是由C++环境创建,这会导致SDK中的类型判断不准确。这种情况可以在arkTs环境中创建一个ArrayBuffer并将C++传过来的ArrayBuffer复制进去,再进行上传即可。
客户端网络正常,但是通过 HTTP 访问 COS 非常慢,或者报错 Connection reset,该如何处理?
部分区域的运营商可能会对 COS 的域名进行劫持,因此尽量通过 HTTPS 来访问 COS。
调用完成分块上传接口时没有包含 etag 信息,导致报错 400 BadRequest,该如何处理?
可能是所在的网络过滤了 Etag 头部,SDK 在上传分块后没有解析到对应的参数,导致 SDK 在结束分块上传时报错。
上传进度到了 100%,最终还是回调了 onFailed 接口,该如何处理?
上传进度这里只是代表 SDK 写入到网络中的进度,100% 并不表示上传完成,只有回调 onSuccess 接口才真正上传成功。如果您在最后发送 Complete Multipart Upload 请求时产生了异常,那么会回调 onFailed 接口表示上传失败,您可根据 onFailed 回调的信息查看具体的异常和解决办法。
使用分块上传报错,例如 400 BadRequest、409 Conflict 等错误,该如何处理?
请尽量使用 SDK 提供的高级接口来上传和下载,不要自己去封装分块上传的接口,否则很容易出错。
通过高级上传和下载报错权限问题,该如何处理?
高级下载文件时会先进行 Head 操作,因此需要同时授权 HeadObject 和 GetObject 两个权限,上传时则需要简单上传和分块上传所有接口的权限。
调用接口时,报错 INVALID_CREDENTIALS,或者签名过期等错误,该如何处理?
请检查获取临时密钥的回调中是否及时更新了密钥,或者密钥是否有效,如果是临时密钥则需要带上 token。
上传时报错 calculate md5 error,该如何处理?
可能是您在上传的过程中修改了文件,导致文件的 MD5 值发生了变化,或者网络很差导致服务端收包产生错误。
请求返回 DATA_FORMAT 错误,该如何处理?
可能是您通过代理访问 COS,但是代理没有做好转发,直接返回了不正确的回包,导致 SDK 解析错误,可以抓包查看客户端接收的回包是否正常。