#Changelog
- 增加
- 上传支持加速域名
- 调整
- 查询区域移除备用域名:api.qiniu.com
- 调整:
- 自动获取的区域信息结果缓存增加磁盘缓存
- 自动获取的区域信息缓存的 key 和 AK、Bucket 以及 UC 的第一个域名相关
- 自动获取的区域信息时如果请求失败可使用过期的缓存
- 自动获取的区域信息时增加主备域名( uc.qiniuapi.com),提升业务可靠性
- 增加
- FixZone 支持通过 RegionID 构造示例
- 调整:
- 调整在根据 Bucket 获取其所在区域信息时的主备域名顺序
- 移除亚太-首尔区域
- 修复:
- 处理 v8.5.3 引用问题
- 优化:
- 对 Dns 预解析和网络检测中的默认域名进行 Base64 处理
- maven 发布脚本更新
- 升级 HappyDns 依赖至 v2.0.1
- 优化 Server 配置拉取逻辑
- 移除雾存储区域:华东一区
- 新增首尔和华东浙江 2 区 Region
- 优化分片上传 ctx 超时检测
- Configuration: 增加 writeTimeout 配置属性,用于配置 tcp 写超时
- 支持自定义 request client
- 升级 HappyDns 依赖至 v2.0.0
- 处理 Dns 预解析内存问题
- 修复:
- 解决使用分片上传 v1 偶现上传异常:在多个区域域名之间进行上传重试的场景下空指针异常
- 补充了上传 response status code 注释,详情 code 注释说明
- 优化:
- 为自动获取上传域名流程增加了一个默认的备份域名。
- 优化:
- SystemDns 解析:异步开线程池,降低高并发场景下对内存资源占用。
- 优化:
- DNS 预解析支持 DoH (DNS over HTTPS)
- 检测并处理劫持,使用安全的 DNS 重试,提高上传可用性
- 优化 DNS 预取结果分组和预取失败处理,提高上传可用性
- 优化日志收集,可更快定位异常问题
- okhttp 依赖版本升至 v4.9.1
- HappyDns 依赖升至 v1.0.0
- SDK 行为可与存储服务端配合,来控制某版本或者指定客户 SDK 的行为,主要用来控制 DNS 预解析阶段要请求的 DNS server 地址和一些提供了开关能力的功能的开启/关闭状态,防止 DNS server 变动或者部分功能的开启/关闭需要更新 SDK 版本
- 新增:
- 新增 token.isValidForDuration API,可在上传之前检查 token 是否有效
- 处理分片 v1 上传偶现异常:多区域重试的断点续传场景偶现空指针异常
- 日志不再统计手机的信号强度
- 对 DNS 域名预解析缓存增加缓存有效期,默认 10 分钟,支持手动修改有效期 GlobalConfiguration.getInstance().dnsCacheMaxTTL 时长,单位为 s
- 优化网络检测,支持关闭
- 兼容支持 Android 4.x ( API level 14+ ),使用 Android4.x 对应 okhttp 版本请调整至 3.12.+
- 支持 okhttp 4.9
- 解决偶现并发异常
- 支持资源通过 Uri 和 InputStream 方式上传
- 优化分片上传逻辑,增加重试
- 增加网络监控功能,选择最优 Host 进行上传
- 优化日志统计
- 区域查询采用SingleFlight模式
- 增加网络链接状态检测
- 优化日志统计
- 支持分片上传V2
- 支持自定义meta
- Zone信息全局缓存
- 缩短Host全局冻结默认时间
- 优化无可用Host的处理逻辑
- 优化Host冻结逻辑带来客户端上传超时问题,提高上传成功率
- 优化客户端上传日志统计
- 优化占用内存峰值
- 优化客户端上传日志流程
- 修复客户端上传日志统计缺失问题
8.0.0版本相对于7.x版本的改进:
- 优化上传流程
- 优化重试方案
- 更改dns解析自定义方式:通过GlobalConfiguration进行配置
- 更改并发上传配置方式:通过Configuration配置,useConcurrentResumeUpload配置是否开启并发上传 & concurrentTaskCount配置并发上传任务数量
8.0.0版本是在7.x版本基础上,在保证上传接口不变的条件下进行的升级,代码修改信息如下:
- 增加的内部使用类:GlobalConfiguration(dns配置类)、HttpRegionRequest、UploadRequestState等
- 废弃类:UploadInfoReporter
- 修改了一些7.x内部使用类的API
- UploadManager上传接口进行了少量调整
如果您并未对7.x SDK 进行过深度定制,而是直接对接QNUploadManager进行上传,那么SDK版本升级只需要花费几分钟的时间进行即可。
详细情况请参考:Android_Changes_from_7.x_to_8.0.0.md
- 修复创建dns缓存文件失败问题
- 修复部分空指针异常
- 优化Dns local cache
- 修复io异常
- 新增表单上传日志打点
- 修复序列化异常
- 更正打点日志字段
- 修复上传区域错误
- 更正打点日志字段
- 新增打点日志
- 解决CI问题
- 增加异常捕获,修复多线程安全问题
- 更新预取的时机,更大成功率保证使用dns预取的结果
- 增加Android网络检测时间配置
- 预取使用https协议可配置
- 应广大用户需求,升级到 okhttp4
- 修复文件空指针异常
- 修复网络异常时崩溃
- 修复部分空指针异常
- 新增灵活upHost重试
- 新增单个文件分片并发上传
- 新增DNS缓存+预取策略减少解析错误
- 修复 okhttp 3.11以前 mime 兼容问题
- 修复 okhttp 3.12 上传中文文件名的兼容问题
- 修复 Android 8.0 net.dns1 属性不能获取问题,即移除依赖 com.qiniu:happy-dns ,保留 dns 设置接口
- 新建 Dns 类,可以不依赖 com.qiniu:happy-dns
- 新加坡机房
- Etag 计算后资源没有释放的问题
- 开启分片上传默认阈值从 512K 调整到 4M
- 每片默认大小从 256K 调整到 2M
- 支持Pandora 上报
- 7.3.7 引入的进度全部为 0.95 问题
- 上传日志收集使用 v3 版本
- happy-dns 到 0.2.13 ,其修复了潜在的并发调用问题
- okhttp 到 3.8.1
- AutoZone 查询时,部分情况不进入回调
- 搜集客户端日志信息
- Etag 大文件计算数字溢出
- UA 包含非 iso 8859-1 字符异常退出
- 将ak的一部分加入到UA
- 北美上传地址
- 自动判断上传存储区
- 上传中途网络断开回调等待
- 用 long 类型处理断点续上传文件长度
- 当出现异常服务端返回为空时会造成NPE
- proxy 支持
- okhttp依赖 升级到3.0
- 调整上传成功判断的方法
- 获取系统版本出错
- 获取IP时候偶尔出现崩溃
- 替换到okhttp 上传
- 禁止0字节文件上传
- 进度回调在非UI线程
- android-async-http 最低版本要求 1.4.9, 为了兼容 Android 6.0 感谢 Haoxiqiang
- 升级SDK环境
- 默认http port 为80
- 首选dns server 改为 119.29.29.29
- 变更上传服务器地址设置方式
- 增加https支持
- 忽略一些设备的不正常ua字符串
- 使用第三方dns解析库happy-dns-android,减少解析错误
- 更详细的response info, 增加了发送字节数,id
- 默认 8888 端口上传
- 8888 端口失效后 切换到80 端口
- 本地验证token
- dns IP 被劫持后,切换到指定IP上传
- 重传判断
- mvn jar发布
- 灵活的上传设置
- url converter
- 当文件未找到时出错
- 更快的取消上传
- keygenerator 当key为null时出错
- multipart key为\r\n时出错
- 生成的jdoc html 乱码
- Estat/Xstat 等性能报告
- post上传进度粒度更细(小影提交)
- 统一android和objective C的错误码
- 使用IP 作为 域名解析失败时上传方案
- 记录请求花费时间
- 纪录节点日志,节点对应的IP
- 添加详细注释
- 支持代理
- 重构,增加了默认参数
- 升级构建脚本
- mimeType设置不正确的问题
- 当参数出现空字符串时,上传失败
- 出现5xx失败时,应回源站上传
- 增加maven 一键发布
- 修正response info isOK 的判断,避免返回部分数据时判断错误
- 简化上传接口
- 自动选择断点续上传还是直传
- 增加断点上传的记录
- 重构代码,内部结构更清晰,便于更换不同的http实现
- 项目使用Android Studio构建
- 实现crc32的检查
- 支持取消上传