You've written an application that uploads objects onto an S3 bucket.
The size of the object varies between 200 - 500 MB.
You've seen that the application sometimes takes a longer than expected time to upload the object.
You want to improve the performance of the application.
Which of the following would you consider?
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - C.
The AWS Documentation mentions the following to support this.
The Multipart Upload API enables you to upload large objects in parts.
You can use this API to upload new large objects or copy an existing object (see Operations on Objects).
Multipart uploading is a three-step process: You initiate the upload, you upload the object parts, and after you have uploaded all the parts, you complete the multipart upload.
Upon receiving the complete multipart upload request, Amazon S3 constructs the object from the uploaded parts.
You can then access the object just as you would any other object in your bucket.
Option A and B are incorrect because both need more changes in the application and are not easier than option.
C.Option D is incorrect because enabling versioning does not help to improve the performance of uploading objects.
For more information on Amazon S3 Multipart file upload, please refer to the below link-
https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.htmlThe best solution to improve the performance of the application for uploading objects of varying size between 200 - 500 MB would be to use the Multipart upload API. Option C is the correct answer.
Multipart upload allows the upload of large objects in smaller parts. This means that instead of uploading the entire object as a single entity, the object is divided into smaller parts and uploaded individually. This approach provides several benefits, including improved reliability, the ability to upload parts in parallel, and the ability to retry individual parts that may have failed.
Using multiple threads (Option A) to upload objects in parallel may improve performance to some extent, but it may not be as efficient as the Multipart upload API. Also, managing threads and ensuring data consistency across them can be challenging.
Writing items in batches (Option B) may be useful in some scenarios, but it may not be the optimal solution for uploading large objects. It could be more suited for a scenario where many small objects need to be uploaded.
Enabling versioning on the bucket (Option D) is a good practice to maintain a history of object versions. However, it does not improve the performance of uploading large objects.
In summary, using the Multipart upload API (Option C) is the best solution to improve the performance of the application for uploading large objects to an S3 bucket.