C# - AWS S3 uploading a file using PutObject or TransferUtility.Upload method. Which is the better way to go with?
amazon-s3, c#-4.0
Solution
Based in Amazon docs, I would stick with `TransferUtility.Upload`:
Provides a high level utility for managing transfers to and from Amazon S3.
TransferUtility provides a simple API for uploading content to and downloading content from Amazon S3. It makes extensive use of Amazon S3 multipart uploads to achieve enhanced throughput, performance, and reliability.
When uploading large files by specifying file paths instead of a stream, TransferUtility uses multiple threads to upload multiple parts of a single upload at once. When dealing with large content sizes and high bandwidth, this can increase throughput significantly.
But please be aware of possible concurrency issues and the recommendation about using BeginUpload (the asynchronous version), like in this related post
Problem
I know there are two methods available to upload files in AWS S3 (i.e. PutObject and TransferUtility.Upload). Can someone please explain which one to use? FYI, I have files ranging from 1kb to 250MB. Thanks in advance.