【问题标题】:How to set http timeouts for Amazon AWS SDK for PHP如何为 Amazon AWS SDK for PHP 设置 http 超时
【发布时间】:2016-11-17 09:34:05
【问题描述】:

我正在使用 Amazon AWS SDK for 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() 调用设置一个超时时间。

谢谢!

【问题讨论】:

    标签: amazon-s3 aws-php-sdk


    【解决方案1】:

    SDK version 3 this can be configured using the http configuration key

    $awsS3Client = Aws\S3\S3Client([
            'key' => '...',
            'secret' => '...',
            'http' => [
                connect_timeout => 5,
                timeout => 10,
            ]
        ]);
    

    【讨论】:

      【解决方案2】:

      最终我帮助了自己:

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

      看起来 AWS PHP 内部使用 curl,所以网络相关选项是这样设置的。

      【讨论】:

      猜你喜欢
      • 2018-01-07
      • 2017-09-18
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 2013-10-25
      • 2013-09-25
      相关资源
      最近更新 更多