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;
- }
- }
|