When PUTting an S3 object to Localstack with attached Metadata, if a key contains an underscore it is replaced with a dash.

However, when the same request is performed against the real S3, the key is not modified.

Example Input:
key_with_underscores => test

Localstack Result:
key-with-underscores => test

S3 Result:
key_with_underscores => test

Localstack Version: 0.10.5

Tested using AWS v2 S3 client
queue_url = self.sqs_client.create_queue(QueueName=TEST_QUEUE_FOR_BUCKET_WITH_NOTIFICATION)['QueueUrl']
        queue_attributes = self.sqs_client.get_queue_attributes(QueueUrl=queue_url, AttributeNames=['QueueArn'])
        return queue_url, queue_attributes
    def _create_test_notification_bucket(self, queue_attributes):
        self.s3_client.create_bucket(Bucket=TEST_BUCKET_WITH_NOTIFICATION)
        self.s3_client.put_bucket_notification_configuration(
            Bucket=TEST_BUCKET_WITH_NOTIFICATION,
            NotificationConfiguration={
                'QueueConfigurations': [
                    {
                        'QueueArn': queue_attributes['Attributes']['QueueArn'],
                        'Events': ['s3:ObjectCreated:*']
                    }
                ]
            }
        )
    def _get_test_queue_message_count(self, queue_url):
        queue_attributes = self.sqs_client.get_queue_attributes(
            QueueUrl=queue_url, AttributeNames=['ApproximateNumberOfMessages'])
        return queue_attributes['Attributes']['ApproximateNumberOfMessages']
    def _delete_bucket(self, bucket_name, keys=[]):