@@ -83,7 +83,8 @@ public function sign(Request $request, Credentials $credentials, RequestContext
8383 protected function buildBodyDigest (Request $ request , bool $ isPresign ): string
8484 {
8585 if ($ request ->hasHeader ('x-amz-content-sha256 ' )) {
86- $ hash = ((array ) $ request ->getHeader ('x-amz-content-sha256 ' ))[0 ];
86+ /** @var string $hash */
87+ $ hash = $ request ->getHeader ('x-amz-content-sha256 ' );
8788 } else {
8889 $ body = $ request ->getBody ();
8990 if ($ body instanceof ReadOnceResultStream) {
@@ -257,7 +258,7 @@ private function convertBodyToStream(Request $request, \DateTimeImmutable $now,
257258 {
258259 $ body = $ request ->getBody ();
259260 if ($ request ->hasHeader ('content-length ' )) {
260- $ contentLength = (int ) (( array ) $ request ->getHeader ('content-length ' ))[ 0 ] ;
261+ $ contentLength = (int ) $ request ->getHeader ('content-length ' );
261262 } else {
262263 $ contentLength = $ body ->length ();
263264 }
@@ -278,14 +279,14 @@ private function convertBodyToStream(Request $request, \DateTimeImmutable $now,
278279
279280 // Convert the body into a chunked stream
280281 $ request ->setHeader ('content-encoding ' , 'aws-chunked ' );
281- $ request ->setHeader ('x-amz-decoded-content-length ' , $ contentLength );
282+ $ request ->setHeader ('x-amz-decoded-content-length ' , ( string ) $ contentLength );
282283 $ request ->setHeader ('x-amz-content-sha256 ' , 'STREAMING- ' . self ::ALGORITHM_CHUNK );
283284
284285 // Compute size of content + metadata used sign each Chunk
285286 $ chunkCount = (int ) ceil ($ contentLength / self ::CHUNK_SIZE );
286287 $ fullChunkCount = $ chunkCount * self ::CHUNK_SIZE === $ contentLength ? $ chunkCount : ($ chunkCount - 1 );
287288 $ metaLength = \strlen (";chunk-signature= \r\n\r\n" ) + 64 ;
288- $ request ->setHeader ('content-length ' , $ contentLength + $ fullChunkCount * ($ metaLength + \strlen ((string ) dechex (self ::CHUNK_SIZE ))) + ($ chunkCount - $ fullChunkCount ) * ($ metaLength + \strlen ((string ) dechex ($ contentLength % self ::CHUNK_SIZE ))) + $ metaLength + 1 );
289+ $ request ->setHeader ('content-length ' , ( string ) ( $ contentLength + $ fullChunkCount * ($ metaLength + \strlen ((string ) dechex (self ::CHUNK_SIZE ))) + ($ chunkCount - $ fullChunkCount ) * ($ metaLength + \strlen ((string ) dechex ($ contentLength % self ::CHUNK_SIZE ))) + $ metaLength + 1 ) );
289290
290291 $ body = IterableStream::create ((function (RequestStream $ body ) use ($ now , $ credentialString , $ signingKey , &$ signature ): iterable {
291292 foreach (FixedSizeStream::create ($ body , self ::CHUNK_SIZE ) as $ chunk ) {
0 commit comments