| | |
| | | |
| | | private final ConcurrentMap<String, UploadProgressInfo> progressMap = new ConcurrentHashMap<>(); |
| | | |
| | | public void init(String taskId) { |
| | | public void init(String taskId, long totalBytes) { |
| | | if (!StringUtils.hasText(taskId)) { |
| | | return; |
| | | } |
| | |
| | | info.setStatus(UploadProgressInfo.STATUS_UPLOADING); |
| | | info.setPercent(0); |
| | | info.setTransferredBytes(0L); |
| | | info.setTotalBytes(0L); |
| | | info.setTotalBytes(Math.max(totalBytes, 0L)); |
| | | progressMap.put(taskId, info); |
| | | } |
| | | |
| | |
| | | info.setStatus(UploadProgressInfo.STATUS_UPLOADING); |
| | | info.setPercent(status.getTransferPercentage()); |
| | | info.setTransferredBytes(status.getTransferredBytes()); |
| | | info.setTotalBytes(status.getTotalBytes()); |
| | | if (status.getTotalBytes() > 0) { |
| | | info.setTotalBytes(status.getTotalBytes()); |
| | | } |
| | | } |
| | | |
| | | public void markSuccess(String taskId, UploadFileResult result) { |
| | | public void markSuccess(String taskId, UploadFileResult result, long totalBytes) { |
| | | if (!StringUtils.hasText(taskId)) { |
| | | return; |
| | | } |
| | | UploadProgressInfo info = progressMap.computeIfAbsent(taskId, this::createUploadingInfo); |
| | | info.setStatus(UploadProgressInfo.STATUS_SUCCESS); |
| | | info.setPercent(100); |
| | | info.setTotalBytes(Math.max(totalBytes, 0L)); |
| | | info.setTransferredBytes(Math.max(totalBytes, 0L)); |
| | | info.setUrl(result.getUrl()); |
| | | info.setFileName(result.getFileName()); |
| | | } |