When creating the following bucket notification configuration:
```json
{
    "QueueConfigurations": [
        {
            "Id": "some-id",
            "QueueArn": "arn:aws:sqs:eu-central-1:123456789:my-queue",
            "Events": [
                "s3:ObjectCreated:*"
            ],
            "Filter": {
                "Key": {
                    "FilterRules": [
                        {
                            "Name": "Prefix",
                            "Value": "path/to/folder/"
                        },
                        {
                            "Name": "Suffix",
                            "Value": ".json"
                        }
                    ]
                }
            }
        }
    ]
}
```
and adding some files to S3, I get the following errors from localstack:

```
localstack.services.s3.s3_listener: Unknown filter name: "Prefix"
localstack.services.s3.s3_listener: Unknown filter name: "Suffix"
```

When I change the FilterRule names from "Prefix" to "prefix" and "Suffix" to "suffix", everything works. AWS supports the capitalised name, so this looks like a bug in localstack.
bucket_name = normalize_bucket_name(bucket_name)
    cors = BUCKET_CORS.get(bucket_name)
    if not cors:
        return
    origin = request_headers.get('Origin', '')
    rules = cors['CORSConfiguration']['CORSRule']
    if not isinstance(rules, list):
        rules = [rules]
    for rule in rules:
        
        allowed_methods = rule.get('AllowedMethod', [])
        if request_method in allowed_methods:
            allowed_origins = rule.get('AllowedOrigin', [])
            for allowed in allowed_origins:
                if origin in allowed or re.match(allowed.replace('*', '.*'), origin):
                    response.headers['Access-Control-Allow-Origin'] = origin
                    if 'ExposeHeader' in rule:
                        expose_headers = rule['ExposeHeader']
                        response.headers['Access-Control-Expose-Headers'] = \
                            ','.join(expose_headers) if isinstance(expose_headers, list) else expose_headers
                    break
def append_last_modified_headers(response, content=None):