Description
AWS has two ways of performing S3 uploads: the "Low-Level" "aws s3api" set of commands and the "High-Level" "aws s3 cp" command. This page outlines how to use the S3's "Low-Level" "aws s3api" commands that allows us to upload very large files.
We have run into a common scenario where S3 uploads of very large files will fail if they exceed the security token expiration of 1-hour window. Other workarounds, such as using a mesos slave to upload from may have disk space limitations. In these cases, we cannot easily use the typical "High-Level" "aws s3 cp" command. Although this command also performs automatic multipart uploads behind the scenes, any timeout will completely cancel file uploads with no way of resuming where the upload last left off.
On the other hand, although the "Low-Level" "aws s3api" set of commands can be pretty tedious, any failed uploads can be re-tried without interrupting or canceling any other successful uploads.
Step-by-step guide