上传的都是照片,获取进度的回调只会执行一次,就是95%,然后就是上传完成。是分片大小的原因吗
上传的都是照片,获取进度的回调只会执行一次,就是95%,然后就是上传完成。是分片大小的原因吗
因为上传进度是用 sdk 写入 socket 的字节数/总字节数作为进度,但写入 socket 不等于服务器收到并且处理完成,中间还有一段时间,如果只是用字节数就会出现更怪异的情况,在 100% 停留很久,所以综合考虑就使用了 95% 这个值。
如果发现上传卡在 95% 很长的时间,请检查是否使用了上传回调业务服务器的功能,请确保业务服务器接受到上传回调后可以返回正确的状态码和回复内容。
1 回答2.5k 阅读
675 阅读
1 回答397 阅读
851 阅读
507 阅读
自己答一下, Android端七牛SDK在上传字节数组时是没有进度回调的, 可以自行修改一下, 我修改的版本在此, 索性直接加了个上传ByteBuffer的接口, 因为SDK中负责分片上传的ResumeUploader本身是用了RandomAccessFile, 和ByteBuffer提供的接口很相似,加一个ByteBuffer很方便: 可上传ByteBuffer的七牛SDK