Skip to content

Commit 481fb6e

Browse files
author
Nicolas Severin
committed
Added support for options on the AWS S3 adapter
1 parent cdd73c8 commit 481fb6e

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

src/Adapter/Builder/AwsAdapterDefinitionBuilder.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ protected function configureOptions(OptionsResolver $resolver)
4545

4646
$resolver->setDefault('prefix', '');
4747
$resolver->setAllowedTypes('prefix', 'string');
48+
49+
$resolver->setDefault('options', []);
50+
$resolver->setAllowedTypes('options', 'array');
4851
}
4952

5053
protected function configureDefinition(Definition $definition, array $options)
@@ -53,5 +56,6 @@ protected function configureDefinition(Definition $definition, array $options)
5356
$definition->setArgument(0, new Reference($options['client']));
5457
$definition->setArgument(1, $options['bucket']);
5558
$definition->setArgument(2, $options['prefix']);
59+
$definition->setArgument(3, $options['options']);
5660
}
5761
}

tests/Adapter/Builder/AwsAdapterDefinitionBuilderTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ public function provideValidOptions()
3535
'bucket' => 'bucket',
3636
'prefix' => 'prefix/path',
3737
]];
38+
39+
yield 'options' => [[
40+
'client' => 'my_client',
41+
'bucket' => 'bucket',
42+
'options' => [
43+
'ServerSideEncryption' => 'AES256',
44+
],
45+
]];
3846
}
3947

4048
/**
@@ -51,12 +59,16 @@ public function testOptionsBehavior()
5159
'client' => 'my_client',
5260
'bucket' => 'bucket',
5361
'prefix' => 'prefix/path',
62+
'options' => [
63+
'ServerSideEncryption' => 'AES256',
64+
],
5465
]);
5566

5667
$this->assertSame(AwsS3Adapter::class, $definition->getClass());
5768
$this->assertInstanceOf(Reference::class, $definition->getArgument(0));
5869
$this->assertSame('my_client', (string) $definition->getArgument(0));
5970
$this->assertSame('bucket', $definition->getArgument(1));
6071
$this->assertSame('prefix/path', $definition->getArgument(2));
72+
$this->assertSame(['ServerSideEncryption' => 'AES256'], $definition->getArgument(3));
6173
}
6274
}

0 commit comments

Comments
 (0)