Как установить таймауты http для Amazon AWS SDK для PHP

Я использую Amazon AWS SDK для PHP (а именно, версию 2.7.16) для загрузки файлов в корзину S3. Как установить время ожидания для операций http/tcp (подключение, загрузка и т. Д.)? Хотя я много гуглил, я не смог узнать как.

Пример кода, который я использую:

$awsS3Client = Aws\S3\S3Client::factory(array(
        'key' => '...',
        'secret' => '...'
    ));

$awsS3Client->putObject(array(
            'Bucket' => '...',
            'Key'    => 'destin/ation.file',
            'ACL'    => 'private',
            'Body'   => 'content'
        ));

поэтому я хотел бы установить тайм-аут на putObject() вызов.

Спасибо!

2 ответа

Решение

В конце концов я помог себе:

$awsS3Client = Aws\S3\S3Client::factory(array(
        'key' => '...',
        'secret' => '...'
        'curl.options' => array(
            CURLOPT_CONNECTTIMEOUT => 5,
            CURLOPT_TIMEOUT => 10,
        )
    ));

Похоже, AWS PHP использует curl для внутреннего использования, поэтому параметры, связанные с сетью, устанавливаются таким образом.

В SDK версии 3 это можно настроить с помощью httpконфигурационный ключ .

      $awsS3Client = Aws\S3\S3Client([
        'key' => '...',
        'secret' => '...',
        'http' => [
            connect_timeout => 5,
            timeout => 10,
        ]
    ]);
Другие вопросы по тегам