AWS s3 progress bar in multipart upload node.js aws-sdk

Viewed 769

I am trying to identify a way to track upload progress for a bunch of file being uploaded using node.js aws-sdk multipart upload.

I was able to divide all files in parts and upload them one by one, But the event httpUploadProgress provides the whole partSize once upload starts, It was not providing live bytes uploaded to aws s3 as in putObject method.

1 Answers

hi thant is how i do in java, maybe this can help you

    PutObjectRequest request = new PutObjectRequest(bucketName, file.getName(), file);

ProgressListener progressListener = new ProgressListener() {
                @Override
                public void progressChanged(com.amazonaws.event.ProgressEvent progressEvent) {
                    bytesUploaded += progressEvent.getBytesTransferred();// add counter
                    if (bytesUploaded > byteTrigger) {
                        if ((bytesUploaded + sizeRatio) < fileSize) {
                            byteTrigger = bytesUploaded + sizeRatio ;
                        } else {
                            byteTrigger = bytesUploaded + (sizeRatio / 6);// increase precision approaching the end
                        }
                        String percent = new DecimalFormat("###.##").format(bytesUploaded * 100.0 / fileSize);
                        log.info("Uploaded: " + FileUtils.byteCountToDisplaySize(bytesUploaded) + " - " + percent + "%");
                    }                    
                }
            };

            request.setGeneralProgressListener(progressListener);
            Upload upload = tm.upload(request);
Related