diff --git a/cloud/amazon/s3.py b/cloud/amazon/s3.py index e6b511b36b8..ecc2a9dc69e 100644 --- a/cloud/amazon/s3.py +++ b/cloud/amazon/s3.py @@ -472,10 +472,10 @@ def main(): else: module.fail_json(msg="Key %s does not exist."%obj, failed=True) - # If the destination path doesn't exist, no need to md5um etag check, so just download. + # If the destination path doesn't exist or overwrite is True, no need to do the md5um etag check, so just download. pathrtn = path_check(dest) - if pathrtn is False: - download_s3file(module, s3, bucket, obj, dest, retries, version=version) + if pathrtn is False or overwrite == 'always': + download_s3file(module, s3, bucket, obj, dest) # Compare the remote MD5 sum of the object with the local dest md5sum, if it already exists. if pathrtn is True: @@ -499,10 +499,6 @@ def main(): if sum_matches is True and overwrite == 'never': module.exit_json(msg="Local and remote object are identical, ignoring. Use overwrite parameter to force.", changed=False) - # At this point explicitly define the overwrite condition. - if sum_matches is True and pathrtn is True and overwrite == 'always': - download_s3file(module, s3, bucket, obj, dest, retries, version=version) - # if our mode is a PUT operation (upload), go through the procedure as appropriate ... if mode == 'put':