| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- <?php
 
- namespace Aws\S3\Crypto;
 
- use \Aws\Crypto\MetadataStrategyInterface;
 
- use \Aws\Crypto\MetadataEnvelope;
 
- class HeadersMetadataStrategy implements MetadataStrategyInterface
 
- {
 
-     /**
 
-      * Places the information in the MetadataEnvelope in to the metadata for
 
-      * the PutObject request of the encrypted object.
 
-      *
 
-      * @param MetadataEnvelope $envelope Encryption data to save according to
 
-      *                                   the strategy.
 
-      * @param array $args Arguments for PutObject that can be manipulated to
 
-      *                    store strategy related information.
 
-      *
 
-      * @return array Updated arguments for PutObject.
 
-      */
 
-     public function save(MetadataEnvelope $envelope, array $args)
 
-     {
 
-         foreach ($envelope as $header=>$value) {
 
-             $args['Metadata'][$header] = $value;
 
-         }
 
-         return $args;
 
-     }
 
-     /**
 
-      * Generates a MetadataEnvelope according to the metadata headers from the
 
-      * GetObject result.
 
-      *
 
-      * @param array $args Arguments from Command and Result that contains
 
-      *                    S3 Object information, relevant headers, and command
 
-      *                    configuration.
 
-      *
 
-      * @return MetadataEnvelope
 
-      */
 
-     public function load(array $args)
 
-     {
 
-         $envelope = new MetadataEnvelope();
 
-         $constantValues = MetadataEnvelope::getConstantValues();
 
-         foreach ($constantValues as $constant) {
 
-             if (!empty($args['Metadata'][$constant])) {
 
-                 $envelope[$constant] = $args['Metadata'][$constant];
 
-             }
 
-         }
 
-         return $envelope;
 
-     }
 
- }
 
 
  |