IOS SDK上传资源时显示上传成功但在控制台获取资源失败

IOS SDK上传资源时显示上传成功但在控制台获取资源失败

更新时间:2020-05-19 01:30:36

问题描述

在OSS中使用IOS SDK上传资源时显示上传成功,但是在OSS控制台无法获取上传的资源。

问题原因

在无线网络环境中,上传比较大的文件会持续较长时间,可能会遇到因为网络条件差、用户切换网络等原因导致上传资源失败,以至于整个文件需要重新上传。

解决方案

可以参考以下几种方法优化上传操作。

断点续传

由于网络不稳定性,建议使用断点续传功能上传资源。

设置网络超时时间和重试次数

移动端可以通过在IOS SDK中编辑以下内容,设置网络超时时间和重试次数。

OSSClientConfiguration * conf = [OSSClientConfiguration new];
conf.maxRetryCount = 3; // 网络请求遇到异常失败后的重试次数
conf.timeoutIntervalForRequest = 30; // 网络请求的超时时间

设置Content-Type和MD5

设置Content-Type并开启MD5校验,如果校验失败就重新上传资源。

校验crc64值

数据在客户端和服务器之间传输时有可能会出错,OSS支持对各种方式上传的Object返回其crc64值,客户端可以和本地计算的crc64值做对比,从而完成数据完整性的验证。具体可以参见CRC校验文档

开启日志功能

  • 开启OSS日志功能,方便定位上传资源时遇到的问题。
  • 移动端的使用环境比较复杂,部分区域或某个时段会出现无法正常使用OSS SDK的情况。为了进一步定位开发者遇到的问题,OSS SDK在开启日志记录功能后,会将日志信息记录在本地。在使用OSS客户端前进行初始化,并调用以下方法开启日志记录:
    • 将文件存储在沙盒的Caches文件或者OSSLogs文件夹内。
    • 可以选择性地将文件上传到服务器,便于进一步追踪问题。

适用于

  • 对象存储OSS

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。