### Apache Airflow version

2.2.3 (latest released)

### What happened

The 2.5.0 version of Amazon Provider contains breaking changes - https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/commits.html specifically https://github.com/apache/airflow/commit/83b51e53062dc596a630edd4bd01407a556f1aa6 or the combination of the following:

- https://github.com/apache/airflow/commit/83b51e53062dc596a630edd4bd01407a556f1aa6
- https://github.com/apache/airflow/commit/d58df468c8d77c5d45e80f2333eb074bb7771a95
- https://github.com/apache/airflow/commit/4be04143a5f7e246127e942bf1d73abcd22ce189

and confirmed by @uranusjr 

I have yanked 2.5.0 and we will need to release ~3.0.0~ 2.5.1 with backwards compatibility fixes 

I have updated the constraints for 2.2.3 for now - https://github.com/apache/airflow/commit/62d490d4da17e35d4ddcd4ee38902a8a4e9bbfff

UPDATED: (@potiuk) to reflect that we are going to release 2.5.1 instead of 3.0.0

airflow/providers/amazon/aws/hooks/s3.py
error will be raised.
        :type replace: bool
        :param encrypt: If True, the file will be encrypted on the server-side
            by S3 and will be stored in an encrypted form while at rest in S3.
        :type encrypt: bool
        :param gzip: If True, the file will be compressed locally
        :type gzip: bool
        :param acl_policy: String specifying the canned ACL policy for the file being
            uploaded to the S3 bucket.
        :type acl_policy: str
        """
        filename = str(filename)
        if not replace and self.check_for_key(key, bucket_name):
            raise ValueError(f"The key {key} already exists.")
        extra_args = self.extra_args
        if encrypt:
            extra_args['ServerSideEncryption'] = "AES256"
        if gzip:
            with open(filename, 'rb') as f_in:
                filename_gz = f_in.name + '.gz'
                with gz.open(filename_gz, 'wb') as f_out:
                    shutil.copyfileobj(f_in, f_out)
                    filename = filename_gz
        if acl_policy:
            extra_args['ACL'] = acl_policy
        client = self.get_conn()
        client.upload_file(filename, bucket_name, key, ExtraArgs=extra_args, Config=self.transfer_config)
    @provide_bucket_name
    @unify_bucket_name_and_key
    def load_string(