PHp AWS S3 SDK重试网络连接错误

时间:2016-12-14 21:13:42

标签: php http amazon-web-services curl amazon-s3

我正在使用AWS SDK V3 for PHP。有时当我调用AWS S3时,由于网络问题,我会收到400错误Bad Request RequestTimeout (client): Your socket connection to the server was not read from or written to within the timeout period等错误,即使我正在尝试与之交互的对象存在。我需要做的是实现重试机制。我想知道我们是否可以使用AWS SDK中的选项来指定我们想要在错误后重试的次数。 我知道我可以通过简单的尝试捕获和重试来做到这一点,但我想可能是SDK已经提供了一种更清洁的方法来做到这一点。 我已经找到了静态函数Middleware::retry(),但我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

您可以在构建任何AWS服务客户端类的新实例时指定重试次数:

$client = new Aws\EC2\Ec2Client([
    'region'  => 'eu-central-1',
    'retries' => 3
]);

https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html#retries