0) { $size_count -= $partSize; $values[] = array( $partSize * $i, ($size_count > 0) ? $partSize : ($size_count + $partSize), ); $i++; } $httpMethod = "PUT"; $headers = [ "Host" => str_replace(['http://', 'https://'], '', $config['uploadurl']), "Content-Length" => 0, "x-amz-date" => $date, ]; $result = []; foreach ($values as $index => $value) { $headers['Content-Length'] = $value[1]; $params = ['partNumber' => $index + 1, 'uploadId' => $uploadId, 'uriParam' => $url, 'dnsParam' => $config['bucket'], 'x-amz-date' => $date]; $model = new Model($params); $sign = new DefaultSignature($config['accessKey'], $config['secretKey'], false, $config['uploadurl'], $httpMethod, 'v2', false, false); $requestConfig = [ 'httpMethod' => $httpMethod, 'requestParameters' => [ 'x-amz-date' => ['location' => 'header'], 'partNumber' => ['location' => 'query'], 'uploadId' => ['location' => 'query'], 'uriParam' => ['location' => 'uri'], 'dnsParam' => ['location' => 'dns'], ] ]; $sig = $sign->doAuth($requestConfig, $params, $model); $result[] = $sig['headers']['Authorization']; } return $result; } }