You should check incomplete multipart uploads if your Metrics in the S3 Management Console shows larger size than you actually use. 

In my case, I found the total size of S3 bucket was 180TB, but actually size I uploaded based on the origin storage was 40TB. I tried to compare all the files one by one, but haven't found any difference. 

I learned AWS S3 keeps incomplete multipart uploads constantly and that won't be deleted as long as user does not make any actions. This is something unusual architecture I haven't expected, so I paid for that incomplete multipart uploads, because people may expect the incomplete multi uploads would be deleted automatically as long as that parts are not integrated for very long time.

  • I found an article that AWS will charge the cost for the incomplete multipart uploads as long as I do not call Abort for the on-going uploads. https://docs.amazonaws.cn/en_us/AmazonS3/latest/userguide/abort-mpu.html
  • The automatic discovery will be essential, because you can not know the previous handle in case of abnormal termination or something similar to that.

    $s3 = new S3Client([
        'version' => 'latest',
        'region'  => 'us-east-1'
    ]);
    
    .
    .
    .
    abnormal termination
  • One of my complaint is that most of user does not know what happen until they pay more than they expected. That is what user should take care and such an information is not easy to find on AWS Web Site.


Here's the action you can do, so you do not need to waste your money for the incomplete multipart uploads.


The action user should do is "Creating lifecycle rule" in the S3 console.


What you should do is select your S3 Bucket and you will see the menu like below:

Once you "Create lifecycle rule", you will need to put/select options like below:

If everything goes fine, you will see the summary like below:

The final action you should do is click "Create rule"


Once you setup the above rule, your rule will be executed in 48 hours and its result will be like below: