| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace AsyncAws\S3\Result;
- use AsyncAws\Core\Exception\Http\HttpException;
- use AsyncAws\Core\Exception\InvalidArgument;
- use AsyncAws\Core\Response;
- use AsyncAws\Core\Waiter;
- use AsyncAws\S3\Input\HeadObjectRequest;
- use AsyncAws\S3\S3Client;
- class ObjectExistsWaiter extends Waiter
- {
- protected const WAIT_TIMEOUT = 100.0;
- protected const WAIT_DELAY = 5.0;
- protected function extractState(Response $response, ?HttpException $exception): string
- {
- if (200 === $response->getStatusCode()) {
- return self::STATE_SUCCESS;
- }
- if (404 === $response->getStatusCode()) {
- return self::STATE_PENDING;
- }
- return null === $exception ? self::STATE_PENDING : self::STATE_FAILURE;
- }
- protected function refreshState(): Waiter
- {
- if (!$this->awsClient instanceof S3Client) {
- throw new InvalidArgument('missing client injected in waiter result');
- }
- if (!$this->input instanceof HeadObjectRequest) {
- throw new InvalidArgument('missing last request injected in waiter result');
- }
- return $this->awsClient->objectExists($this->input);
- }
- }
|