我有一个Webapp,其架构非常简单:
我的Web应用程序有一个主要问题。基本上,我的Web应用程序利用内部API服务器执行一些与文档相关的离散功能(因此称为AWS S3)。该API在正常情况下可以正常运行,但是如果出现错误(例如文件不存在或权限不足),则PHP代码会挂起。我已经通过网络应用程序以及cURL对它进行了测试,可以轻松地复制问题。
基本用法模式:
总结:
这令人担忧,原因有两个:
我尝试通过Web应用程序通过cURL使用API,并且发生了相同的行为(即挂起5-10分钟)。
require '/var/www/html/private/aws/aws-autoloader.php';
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$s3 = S3Client::factory(['version' => 'latest','region' => 'ap-southeast-2',]);
try
{
$s3->deleteObject(array(
'Bucket' => $path,
'Key' => $in_filename
));
$numResult=1;
}
catch (S3Exception $e)
{
echo $e->getMessage() . "\n";
$numResult=0;
}
echo $numResult;
如果发生问题,我希望输出一个0字符,这将促使我进行进一步调查和/或我可以改进代码以将异常发送到syslog或类似物中。
(顺便说一句,我正在将$ path和$ in_filename值设置得很好,将那些保留在代码中)。
答案 0 :(得分:0)
我遇到了类似的问题,它与 Xdebug(带有 PHP 7.4.15 的 v3.0.2)有关,当扩展被禁用时,SDK 抛出异常而不挂起。