@@ -83,7 +83,8 @@ public function sign(Request $request, Credentials $credentials, RequestContext
83
83
protected function buildBodyDigest (Request $ request , bool $ isPresign ): string
84
84
{
85
85
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 ' );
87
88
} else {
88
89
$ body = $ request ->getBody ();
89
90
if ($ body instanceof ReadOnceResultStream) {
@@ -257,7 +258,7 @@ private function convertBodyToStream(Request $request, \DateTimeImmutable $now,
257
258
{
258
259
$ body = $ request ->getBody ();
259
260
if ($ request ->hasHeader ('content-length ' )) {
260
- $ contentLength = (int ) (( array ) $ request ->getHeader ('content-length ' ))[ 0 ] ;
261
+ $ contentLength = (int ) $ request ->getHeader ('content-length ' );
261
262
} else {
262
263
$ contentLength = $ body ->length ();
263
264
}
@@ -278,14 +279,14 @@ private function convertBodyToStream(Request $request, \DateTimeImmutable $now,
278
279
279
280
// Convert the body into a chunked stream
280
281
$ 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 );
282
283
$ request ->setHeader ('x-amz-content-sha256 ' , 'STREAMING- ' . self ::ALGORITHM_CHUNK );
283
284
284
285
// Compute size of content + metadata used sign each Chunk
285
286
$ chunkCount = (int ) ceil ($ contentLength / self ::CHUNK_SIZE );
286
287
$ fullChunkCount = $ chunkCount * self ::CHUNK_SIZE === $ contentLength ? $ chunkCount : ($ chunkCount - 1 );
287
288
$ 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 ) );
289
290
290
291
$ body = IterableStream::create ((function (RequestStream $ body ) use ($ now , $ credentialString , $ signingKey , &$ signature ): iterable {
291
292
foreach (FixedSizeStream::create ($ body , self ::CHUNK_SIZE ) as $ chunk ) {
0 commit comments