An application frequently starts multipart uploads to an S3 bucket but, due to intermittent network failures, many of these uploads are never completed or explicitly aborted. The company notices its storage bill includes charges for parts that were never assembled into a final object. What should they configure to automatically stop paying for these abandoned parts?
- S3 Requester Pays, so the uploading client is billed instead of the bucket owner
- S3 Object Lock in Compliance mode on the bucket
- An S3 Lifecycle rule that transitions all objects to S3 Glacier Deep Archive after 30 days
- An S3 Lifecycle rule using the AbortIncompleteMultipartUpload action to delete incomplete uploads after a set number of days
Why D? And why not the others?
Correct answer: D. An S3 Lifecycle rule using the AbortIncompleteMultipartUpload action to delete incomplete uploads after a set number of days
AWS documentation explains that after a multipart upload is initiated, S3 retains and bills for every uploaded part until the upload is either completed or explicitly stopped; if neither happens, the parts remain in the bucket indefinitely, accruing storage charges for data that will never become a usable object. The recommended fix is a Lifecycle rule using the AbortIncompleteMultipartUpload action, which tells S3 to automatically identify and delete the parts of any multipart upload that has not completed within a specified number of days, stopping the storage charges without any manual cleanup. Object Lock in Compliance mode only prevents completed object versions from being deleted or overwritten during a retention period; it has no mechanism for finding or removing abandoned multipart upload parts and would not address this cost at all. A Lifecycle rule that transitions completed objects to Glacier Deep Archive only affects objects that already exist in the bucket; it has no effect on in-progress, incomplete multipart uploads, which are not objects and are not eligible for storage-class transition. Requester Pays only shifts who is billed for requests and completed data transfer to the requester; the bucket owner still pays for the underlying storage of the abandoned parts, and Requester Pays does nothing to make the incomplete uploads eligible for automatic deletion.
Source: AWS S3 documentation: Uploading and copying objects using multipart upload — multipart upload pricing and the AbortIncompleteMultipartUpload lifecycle action