开发者社区> 问答> 正文

android批量上传相册图片,成功后删除本地图片,但是会出现成功了没删除的现象

如题,项目需求就是这样的,定时1S进行一次传输操作,setMaxErrorRetry已经设置为0,但是测试时上传500张图片,成功了490,但是留在本地的图片远不止10张,日志显示的失败次数也不止10次,不知道为什么
代码如下:
OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback() {

                    @Override
                    public void onSuccess(PutObjectRequest request, PutObjectResult result) {
                        String videoPath = request.getUploadFilePath();
                        File file = new File(videoPath);
                        if (file.isFile() && file.exists()) {
                            file.delete();
                        }
                        Log.d("PutObject", "UploadSuccess");
                        Log.d("ETag", result.getETag());
                        Log.d("RequestId", result.getRequestId());
                        Log.d("Success", i+"---"+request.getObjectKey());
                    }

                    @Override
                    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
                        // 请求异常
                        Log.e("ErrorCode", request.getObjectKey());
                    }
                });

失败大多数情况如下
12-29 16:18:01.955 30699-31256/com.armboard.cameratest E/OSS-Android-SDK: Encounter local execpiton: java.net.SocketTimeoutException: timeout
12-29 16:18:01.965 30699-31256/com.armboard.cameratest E/OSS-Android-SDK: [run] - retry, retry type: OSSRetryTypeShouldNotRetry

展开
收起
致行无线 2016-12-29 16:20:02 5769 0
4 条回答
写回答
取消 提交回答
  • 上传成功490次是严格校验过的吗?是否可能上传了一部分断掉而你看到有文件就以为是成功了。

    2019-07-17 20:38:03
    赞同 展开评论 打赏
  • 把每次删除的文件打印出来,有可能是回调删除文件出错。

    2019-07-17 20:38:03
    赞同 展开评论 打赏
  • 定时1S进行一次传输操作,这里面的同步机制检查下。我怀疑是不是同时去传同一张图片了。我建议你断点调试下,或者加多点log和上下文信息。应该可以诊断出来。希望对你有帮助

    2019-07-17 20:38:03
    赞同 展开评论 打赏
  • 检查一下你的重试机制是否正确计数。然后看看图片本身是不是格式有问题。是否每次都是同样的几张无法上传。

    2019-07-17 20:38:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载