aliyun / aliyun-oss-android-sdk

Android SDK for aliyun object storage service
807 stars 306 forks source link

2.9.11是否支持断点下载 #357

Closed ouy3xx closed 1 year ago

ouy3xx commented 2 years ago

请问下,android 2.9.11是否支持断点下载,之前一直都是用重新下载,现在需求有变,在网络异常或者断开时,支持断点下载功能? 看文档没有相关的信息,支持的话怎么实现?有示例代码吗? 我看之前的issue有提过,经过一番修改,目前文档没看到具体的解释,是ResumableDownloadTask.java这个吗,还是OSS里面asyncResumableDownload或者syncResumableDownload这两个函数

wushuai1415 commented 2 years ago

2.9.11是支持的,不过存在一些问题,2.9.13修复了,所以最好升级到2.9.13。 // 填写Bucket名称,例如examplebucket String bucketName = "examplebucket"; // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称 String objectKey = "exampledir/exampleobject.txt"; // 下载文件路径 String downloadFilePath = "/storage/emulated/0/oss/examplefile.txt"; ResumableDownloadRequest request = new ResumableDownloadRequest(bucketName, objectKey, downloadFilePath); // 设置分片大小 request.setPartSize(100 * 1024); // 开启断点记录 request.setEnableCheckPoint(true); // 设置断点记录文件路径 request.setCheckPointFilePath("/storage/emulated/0/oss"); request.setProgressListener(new OSSProgressCallback() { @Override public void onProgress(Object request, long currentSize, long totalSize) { Log.d("ResumableDownload", "currentSize: " + currentSize + " totalSize: " + totalSize); } }); OSSAsyncTask task = mOss.asyncResumableDownload(request, new OSSCompletedCallback<ResumableDownloadRequest, ResumableDownloadResult>() { @Override public void onSuccess(ResumableDownloadRequest request, ResumableDownloadResult result) { Log.d("ResumableDownload", "DownloadSuccess"); } @Override public void onFailure(ResumableDownloadRequest request, ClientException clientException, ServiceException serviceException) { // 请求异常。 if (clientException != null) { // 客户端异常,例如网络异常等。 clientException.printStackTrace(); } if (serviceException != null) { // 服务端异常。 Log.e("ErrorCode", serviceException.getErrorCode()); Log.e("RequestId", serviceException.getRequestId()); Log.e("HostId", serviceException.getHostId()); Log.e("RawMessage", serviceException.getRawMessage()); } } });

ouy3xx commented 2 years ago

好的,我再试试看,这边断点续载是支持同步和异步的吧?项目这边因为有界面下载文件才能跳转播放,请问同步的也是上面这个示例代码吗?

wushuai1415 commented 2 years ago

好的,我再试试看,这边断点续载是支持同步和异步的吧?项目这边因为有界面下载文件才能跳转播放,请问同步的也是上面这个示例代码吗?

同步把asyncResumableDownload 换成syncResumableDownload方法

ouy3xx commented 2 years ago

同步过程中,如果网络异常,然后恢复,是否会继续下载直至完成?

ouy3xx commented 1 year ago

请问上面的问题,可以吗?

wushuai1415 commented 1 year ago

请问上面的问题,可以吗?

网络中断后sdk会先重试,如果重试失败,需要再次调用断点下载的代码才会继续下载

ouy3xx commented 1 year ago

好的,那我再试试,又不懂的再来请教了,感谢!

ouy3xx commented 1 year ago

感谢,已经测试成功了!