diff --git a/src/S3/MultipartUploader.php b/src/S3/MultipartUploader.php index 3387da59e1..5654e88097 100644 --- a/src/S3/MultipartUploader.php +++ b/src/S3/MultipartUploader.php @@ -214,9 +214,9 @@ protected function getCompleteParams() private function decorateWithHashes(Stream $stream, array &$data) { // Decorate source with a hashing stream - $hash = new PhpHash('sha256', ['base64' => true]); + $hash = new PhpHash('sha256'); return new HashingStream($stream, $hash, function ($result) use (&$data) { - $data['ContentSHA256'] = $result; + $data['ContentSHA256'] = bin2hex($result); }); } } diff --git a/tests/Integ/S3MultipartTest.php b/tests/Integ/S3MultipartTest.php index d8876a04e6..080f2d1ddb 100644 --- a/tests/Integ/S3MultipartTest.php +++ b/tests/Integ/S3MultipartTest.php @@ -4,7 +4,6 @@ use Aws\Exception\MultipartUploadException; use Aws\S3\BatchDelete; use Aws\S3\MultipartUploader; -use Aws\Test\Integ\IntegUtils; use GuzzleHttp\Psr7\NoSeekStream; use GuzzleHttp\Psr7; @@ -18,25 +17,26 @@ class S3Multipart extends \PHPUnit_Framework_TestCase public static function setUpBeforeClass() { $client = self::getSdk()->createS3(); - if (!$client->doesBucketExist(self::BUCKET)) { - $client->createBucket(['Bucket' => self::BUCKET]); - $client->waitUntil('BucketExists', ['Bucket' => self::BUCKET]); + if (!$client->doesBucketExist(self::getBucketName())) { + $client->createBucket(['Bucket' => self::getBucketName()]); + $client->waitUntil('BucketExists', ['Bucket' => self::getBucketName()]); } } public static function tearDownAfterClass() { $client = self::getSdk()->createS3(); - BatchDelete::fromListObjects($client, ['Bucket' => self::BUCKET])->delete(); - $client->deleteBucket(['Bucket' => self::BUCKET]); + BatchDelete::fromListObjects($client, ['Bucket' => self::getBucketName()])->delete(); + $client->deleteBucket(['Bucket' => self::getBucketName()]); + $client->waitUntil('BucketNotExists', ['Bucket' => self::getBucketName()]); } public function useCasesProvider() { return [ ['SeekableSerialUpload', true, 1], - ['NonSeekableSerialUpload', false, 3], - ['SeekableConcurrentUpload', true, 1], + ['NonSeekableSerialUpload', false, 1], + ['SeekableConcurrentUpload', true, 3], ['NonSeekableConcurrentUpload', false, 3], ]; } @@ -62,7 +62,7 @@ public function testMultipartUpload($key, $seekable, $concurrency) // Create the uploader $uploader = new MultipartUploader($client, $stream, [ - 'bucket' => self::BUCKET, + 'bucket' => self::getBucketName(), 'key' => $key, 'concurrency' => $concurrency ]); @@ -84,4 +84,16 @@ public function testMultipartUpload($key, $seekable, $concurrency) @unlink($tmpFile); } + + + private static function getBucketName() + { + static $bucketName; + + if (empty($bucketName)) { + $bucketName = self::getResourcePrefix() . self::BUCKET; + } + + return $bucketName; + } }