title: How to actually track S3 upload progress (JavaScript SDK)
body: <p>I'd like to be able to track an S3 file upload's progress (bytes uploaded out of bytes total).</p>
  
  <p>Before anyone flags this as a dupe—it's not. Every other answer I've seen on StackOverflow is actually incorrect. If you do something like this:</p>
  
  <pre><code>s3
    .putObject(
      {
        Bucket: 'xyz',
        Key: 'wow.png',
        Body: data,
      },
      (err, data) =&gt; {
        console.log('done', err, data);
      }
    )
    .on('httpUploadProgress', progress =&gt; {
      console.log('Progress:', progress);
    });
  </code></pre>
  
  <p>You get a single progress update, showing the total size:</p>
  
  <pre><code>Progress { loaded: 1082019, total: 1082019 }
  </code></pre>
  
  <p>This is not useful. What I'm looking for is a more fine-grained report of upload progress like you would normally see during an upload (no matter the file size.. 1MB or 100MB):</p>
  
  <p>0% out of 100%<br>
  3% out of 100%<br>
  7% out of 100%<br>
  9% out of 100%<br>
  (etc)</p>