diff options
author | Andrew Dolgov <[email protected]> | 2023-10-20 16:44:35 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2023-10-20 16:44:35 +0300 |
commit | 8bec661288b276c98bdb0e773e5f4d5275dc4c87 (patch) | |
tree | 8617ebe581c62fc46a7881aa61801ebce9d3c603 /vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php | |
parent | 540438c2eb5452bacad30c247906bfa287f2da1d (diff) |
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php b/vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php index 9279d22..1cca0ad 100644 --- a/vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php +++ b/vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php @@ -17,7 +17,7 @@ use Psr\Http\Message\RequestInterface; class ApplyChecksumMiddleware { use CalculatesChecksumTrait; - private static $sha256 = [ + private static $sha256AndMd5 = [ 'PutObject', 'UploadPart', ]; @@ -54,6 +54,11 @@ class ApplyChecksumMiddleware $name = $command->getName(); $body = $request->getBody(); + //Checks if AddContentMD5 has been specified for PutObject or UploadPart + $addContentMD5 = isset($command['AddContentMD5']) + ? $command['AddContentMD5'] + : null; + $op = $this->api->getOperation($command->getName()); $checksumInfo = isset($op['httpChecksum']) @@ -94,7 +99,9 @@ class ApplyChecksumMiddleware $checksumRequired = isset($checksumInfo['requestChecksumRequired']) ? $checksumInfo['requestChecksumRequired'] : null; - if (!empty($checksumRequired) && !$request->hasHeader('Content-MD5')) { + if ((!empty($checksumRequired) && !$request->hasHeader('Content-MD5')) + || (in_array($name, self::$sha256AndMd5) && $addContentMD5) + ) { // Set the content MD5 header for operations that require it. $request = $request->withHeader( 'Content-MD5', @@ -104,7 +111,7 @@ class ApplyChecksumMiddleware } } - if (in_array($name, self::$sha256) && $command['ContentSHA256']) { + if (in_array($name, self::$sha256AndMd5) && $command['ContentSHA256']) { // Set the content hash header if provided in the parameters. $request = $request->withHeader( 'X-Amz-Content-Sha256', |