hello
Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : chryzalihi ( 621211) PHP Version : 8.3.31 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/c/h/r/chryzalihi/www/wp-content/languages/themes/the/ |
chryzalihi/www/wp-contentOLD/plugins/backwpup/vendor/Aws/S3/IncompleteMultipartUploadChecker.php 0000604 00000003642 15244073047 0030030 0 ustar 00 home <?php
namespace Aws\S3;
use Guzzle\Http\Exception\HttpException;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Http\Message\EntityEnclosingRequestInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Plugin\Backoff\BackoffStrategyInterface;
use Guzzle\Plugin\Backoff\AbstractBackoffStrategy;
/**
* Retries CompleteMultipartUpload requests in the case of failure.
*
* From the S3 API Documentation:
*
* Processing of a Complete Multipart Upload request could take several
* minutes to complete. After Amazon S3 begins processing the request, it
* sends an HTTP response header that specifies a 200 OK response. While
* processing is in progress, Amazon S3 periodically sends whitespace
* characters to keep the connection from timing out. Because a request
* could fail after the initial 200 OK response has been sent, it is
* important that you check the response body to determine whether the
* request succeeded. Note that if Complete Multipart Upload fails,
* applications should be prepared to retry the failed requests.
*/
class IncompleteMultipartUploadChecker extends AbstractBackoffStrategy
{
public function __construct(BackoffStrategyInterface $next = null)
{
if ($next) {
$this->setNext($next);
}
}
public function makesDecision()
{
return true;
}
protected function getDelay(
$retries,
RequestInterface $request,
Response $response = null,
HttpException $e = null
) {
if ($response && $request->getMethod() === 'POST'
&& $request instanceof EntityEnclosingRequestInterface
&& $response->getStatusCode() == 200
&& strpos($request->getBody(), '<CompleteMultipartUpload xmlns') !== false
&& strpos($response->getBody(), '<CompleteMultipartUploadResult xmlns') === false
) {
return true;
}
}
}