### 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
"""
    Function decorator that unifies bucket name and key taken from the key
    in case no bucket name and at least a key has been passed to the function.
    """
    function_signature = signature(func)
    @wraps(func)
    def wrapper(*args, **kwargs) -> T:
        bound_args = function_signature.bind(*args, **kwargs)
        if 'wildcard_key' in bound_args.arguments:
            key_name = 'wildcard_key'
        elif 'key' in bound_args.arguments:
            key_name = 'key'
        else:
            raise ValueError('Missing key parameter!')
        if 'bucket_name' not in bound_args.arguments:
            bound_args.arguments['bucket_name'], bound_args.arguments[key_name] = S3Hook.parse_s3_url(
                bound_args.arguments[key_name]
            )
        return func(*bound_args.args, **bound_args.kwargs)
    return cast(T, wrapper)
class S3Hook(AwsBaseHook):