#Changelog
- 处理 iOS 18 PHAssetResource 信息 fetch 失败而导致异常问题
- 上传支持加速域名
- 查询区域移除备用域名:api.qiniu.com
- 增加 PrivacyInfo 文件
- 查询区域的主备域名增加 uc.qiniuapi.com
- iOS 最低版本调整至 iOS9
- QNFixedZone 新增通过 RegionID 构造实例的方法
- 区域查询结果缓存支持磁盘缓存
- 调整在根据 Bucket 获取其所在区域信息时的主备域名顺序
- 移除亚太-首尔区域
- 对 Dns 预解析和网络检测中的默认域名进行 Base64 处理
- HappyDns 依赖升至 v1.0.3
- 处理 Server 配置同步并发问题
- 优化 Server 配置获取逻辑
- 优化分片上传 ctx 超时检测
- QNDnsDelegate 代理函数名调整 lookup: 调整为 query:【不兼容变更】
- 移除雾存储区域:华东一区
- 增加亚太-首尔和华东浙江 2 区固定 Region
- 处理网络检测阶段可能出现的并发异常
- HappyDns 依赖升至 v1.0.2
- 优化表单上传:当出现内存问题抛出错误
- 优化分片 v1 上传:强化验证上传块数据验证
- 增加上传 status code 注释
- 为默认自动获取上传域名流程增加了新的备份域名
- 支持 Swift Package Manager
- DNS 预解析支持 DoH (DNS over HTTPS)
- 检测并处理劫持,使用安全的 DNS 重试,提高上传可用性
- 优化 DNS 预取结果分组和预取失败处理,提高上传可用性
- 优化日志收集,可更快定位异常问题
- HappyDns 依赖升至 v1.0.0
- SDK 行为可与存储服务端配合,来控制某版本或者指定客户 SDK 的行为,主要用来控制 DNS 预解析阶段要请求的 DNS server 地址和一些提供了开关能力的功能的开启/关闭状态,防止 DNS server 变动或者部分功能的开启/关闭需要更新 SDK 版本
- 新增 token.isValidForDuration API,可在上传之前检查 token 是否有效
- 处理 PHAssert 偶现上传失败问题
- 对 DNS 域名预解析缓存增加缓存有效期,默认 10 分钟,支持手动修改有效期时长,kQNGlobalConfiguration.dnsCacheMaxTTL 单位为 s
- 优化网络检测,支持关闭
- 优化打点日志信息
- 支持 InputStream 上传
- 优化 DNS 预解析,去除了 DNS 初始化时对所有 fixZone 的预解析操作
- 优化日志统计
- 修复 v8.0.0 版本开始断点续传 record key 自定义未生效问题
- 增加网络监控功能,选择最优Host进行上传
- 处理上传进度不准确问题
- 优化日志统计
- 区域查询采用SingleFlight模式
- 增加网络链接状态检测
- 优化日志统计
- 支持分片V2
- 支持自定义meta
- 优化并发上传
- 解决一些并发分片上传的野指针问题
- 优化无可用Host时的错误处理逻辑
- 缩短Host全局冻结默认时间
- 优化Host冻结逻辑带来客户端上传超时问题,提高上传成功率
- 修复内存峰值问题
- 优化日志上传统计
- 修复日志上传失败问题
- 优化日志上传逻辑
- 优化一些内存问题
8.0.0版本相对于7.x版本的改进:
- 优化上传流程
- 优化重试方案
8.0.0版本是在7.x版本基础上,在保证上传接口不变的条件下进行的升级,代码修改信息如下:
- 增加的内部使用类:QNHttpRegionRequest、QNUploadRequestState等
- 废弃类:QNHttpResponseInfo、QNUploadInfoReporter
- 修改了一些7.x内部使用类的API
如果您并未对7.x SDK 进行过深度定制,而是直接对接QNUploadManager进行上传,那么SDK版本升级只需要更换pod版本重新安装即可。
详细情况请参考:iOS_Changes_from_7.x_to_8.0.0.md
增加设备磁盘空间不足情况下写本地reporter文件NSHandle异常捕获
优化Dns预取的缓存方案
修改版本依赖:HappyDns -> 0.3.17 处理部分警告
处理内存泄漏
新增Dns预解析功能,上传请求大概率跳过Dns解析步骤,提高上传质量。
日志上报errorType新增prototol_error协议错误
QNResponse添加xClientId字段回调 添加network_loss.sh
uplog up_time字段修改 uplog json format校正
- uplog v4版本更新
- v2 prequery 升级到 v3,支持跨区域双活切换
- 修改上传域名重试逻辑
- 并发分片上传
- PHAsset iOS 13 支持
- Form上传配置filename
- 新上传节点
- 修复uploadtoken 错误
- 进度回调重复
- 进度回调实现导致内存泄漏
- 增加codecov 展示
- 去掉AFNetworking依赖
*audioZone zone访问对象排序更新 *chunkSize 默认增加为 2M *putThreshold 默认增加为 4M
- 默认 Form 表单上传方式添加 CRC32 校验
- uc 接口 v1 版更新至 v2版
- 新增华东,华南上传互备
- 加入Pandora 打点支持
- UA 加入识别字段
- PHAssetResourceRequestOptions 参数类型
- 增加zoneNa0 北美
- 增加zone2 华南
- 修正 happydns 调用函数
- 依赖升级到AFNetworking 到 3.x
- iOS8 ipv6 问题
- 为ipv6兼容,happydns 指定为 0.3以上
- iOS8 ipv6 支持
- ipv6 支持
- 进度回调有时显示回退
- 隐藏GTM_Base64 类名,避免名字冲突
- 暂时去除QNStat
- 分片上传的fname
- 从bundle 中读取 ats 配置
- 增加格式化脚本,格式化所有代码
- 增加了一个从相册选取文件上传的demo
- 进度回调错误
- 更改Reachbility的名字,避免和用户自定义的冲突
- 上传性能统计
- 禁止0字节文件上传
- ua加入idfv 便于网络诊断
- 支持PHAsset
- HappyDns swift bridge问题
- QNHttpDelegate.h 头文件名大小写修正
- 指定AFNetworking 为2.5.+, 因为2.6已经移除iOS 6 支持
- 变更set host 方法
- 修正大文件上传内存泄露
- 支持文件大小超过2G
- Fix typo in QNUploadOption constructor.
- 使用 happydns 进行解析
- 支持ALAsset上传,多谢 github.com/NSFish的代码
- 当文件超过200M时,iOS上传失败
- response info 增加 user id, timestamp
- 上传前 检查token
- 支持指定服务器端口
- 当发现服务器不是七牛时切换到指定IP
- 灵活的上传设置
- 上传之前 url convert
- 域名解析失败 切换到备用IP
- cocoapods spec 增加libz
- dns解析函数
- 出现劫持时,非utf8 body crash
- QNResponseInfo 时间开销及host 记录
- 支持http代理(iOS7.0 以上)
- 代码注释
- 增加cdn 节点log
- 5xx时切换到备用服务器
- 上传时指定mimeType无效的问题
- 忽略上传时,value 为 空字串的key
- 检查因网络断开服务器返回空body或者非七牛服务器的情况
- 增加timeout
- ResumeUpload中httpManager weak引用造成nil
- 重构代码,更符合objc 现代方式
- 输入参数检查
- 不使用undefined key
- 实现crc32的检查
- 上传参数检查
- 更新repo地址
- pod 安装头文件问题
- 简化上传接口
- 自动选择断点续上传还是直传
- 增加断点上传的记录
- 重构代码,内部结构更清晰,便于更换不同的http实现
- 项目使用Cocoapods构建,并支持Cocoapods安装
- 同时支持Mac和iOS
- 支持取消上传