CryptoParamsTrait.php
11 months ago
CryptoParamsTraitV2.php
11 months ago
HeadersMetadataStrategy.php
11 months ago
InstructionFileMetadataStrategy.php
11 months ago
S3EncryptionClient.php
11 months ago
S3EncryptionClientV2.php
11 months ago
S3EncryptionMultipartUploader.php
11 months ago
S3EncryptionMultipartUploaderV2.php
11 months ago
UserAgentTrait.php
11 months ago
HeadersMetadataStrategy.php
53 lines
| 1 | <?php |
| 2 | namespace Aws\S3\Crypto; |
| 3 | |
| 4 | use \Aws\Crypto\MetadataStrategyInterface; |
| 5 | use \Aws\Crypto\MetadataEnvelope; |
| 6 | |
| 7 | class HeadersMetadataStrategy implements MetadataStrategyInterface |
| 8 | { |
| 9 | /** |
| 10 | * Places the information in the MetadataEnvelope in to the metadata for |
| 11 | * the PutObject request of the encrypted object. |
| 12 | * |
| 13 | * @param MetadataEnvelope $envelope Encryption data to save according to |
| 14 | * the strategy. |
| 15 | * @param array $args Arguments for PutObject that can be manipulated to |
| 16 | * store strategy related information. |
| 17 | * |
| 18 | * @return array Updated arguments for PutObject. |
| 19 | */ |
| 20 | public function save(MetadataEnvelope $envelope, array $args) |
| 21 | { |
| 22 | foreach ($envelope as $header=>$value) { |
| 23 | $args['Metadata'][$header] = $value; |
| 24 | } |
| 25 | |
| 26 | return $args; |
| 27 | } |
| 28 | |
| 29 | /** |
| 30 | * Generates a MetadataEnvelope according to the metadata headers from the |
| 31 | * GetObject result. |
| 32 | * |
| 33 | * @param array $args Arguments from Command and Result that contains |
| 34 | * S3 Object information, relevant headers, and command |
| 35 | * configuration. |
| 36 | * |
| 37 | * @return MetadataEnvelope |
| 38 | */ |
| 39 | public function load(array $args) |
| 40 | { |
| 41 | $envelope = new MetadataEnvelope(); |
| 42 | $constantValues = MetadataEnvelope::getConstantValues(); |
| 43 | |
| 44 | foreach ($constantValues as $constant) { |
| 45 | if (!empty($args['Metadata'][$constant])) { |
| 46 | $envelope[$constant] = $args['Metadata'][$constant]; |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | return $envelope; |
| 51 | } |
| 52 | } |
| 53 |