summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/S3/ApplyChecksumMiddleware.php13
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',