123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace Aws\S3\Crypto;
- use Aws\Crypto\MaterialsProvider;
- use Aws\Crypto\MetadataEnvelope;
- use Aws\Crypto\MetadataStrategyInterface;
- trait CryptoParamsTrait
- {
- protected function getMaterialsProvider(array $args)
- {
- if ($args['@MaterialsProvider'] instanceof MaterialsProvider) {
- return $args['@MaterialsProvider'];
- }
- throw new \InvalidArgumentException('An instance of MaterialsProvider'
- . ' must be passed in the "MaterialsProvider" field.');
- }
- protected function getInstructionFileSuffix(array $args)
- {
- return !empty($args['@InstructionFileSuffix'])
- ? $args['@InstructionFileSuffix']
- : $this->instructionFileSuffix;
- }
- protected function determineGetObjectStrategy(
- $result,
- $instructionFileSuffix
- ) {
- if (isset($result['Metadata'][MetadataEnvelope::CONTENT_KEY_V2_HEADER])) {
- return new HeadersMetadataStrategy();
- }
- return new InstructionFileMetadataStrategy(
- $this->client,
- $instructionFileSuffix
- );
- }
- protected function getMetadataStrategy(array $args, $instructionFileSuffix)
- {
- if (!empty($args['@MetadataStrategy'])) {
- if ($args['@MetadataStrategy'] instanceof MetadataStrategyInterface) {
- return $args['@MetadataStrategy'];
- }
- if (is_string($args['@MetadataStrategy'])) {
- switch ($args['@MetadataStrategy']) {
- case HeadersMetadataStrategy::class:
- return new HeadersMetadataStrategy();
- case InstructionFileMetadataStrategy::class:
- return new InstructionFileMetadataStrategy(
- $this->client,
- $instructionFileSuffix
- );
- default:
- throw new \InvalidArgumentException('Could not match the'
- . ' specified string in "MetadataStrategy" to a'
- . ' predefined strategy.');
- }
- } else {
- throw new \InvalidArgumentException('The metadata strategy that'
- . ' was passed to "MetadataStrategy" was unrecognized.');
- }
- } elseif ($instructionFileSuffix) {
- return new InstructionFileMetadataStrategy(
- $this->client,
- $instructionFileSuffix
- );
- }
- return null;
- }
- }
|