A local file will require uploading if the size of the local file is different than the size of the s3 object, the last modified time of the local file is newer than the last modified time of the s3 object, or the local file does not exist under the specified bucket and prefix.
I cannot believe that aws s3 sync
is based on file size and last modified dates and not something like an md5 hash.