我有一个webapp,它的架构非常简单:
我的网络应用程序有一个大问题。基本上,我的web应用程序使用内部API服务器来执行一些与文档相关的离散功能(因此是AWS S3)。API在正常情况下运行良好,但是如果出现错误(例如,文件不存在或权限不足),则PHP代码挂起。我已经测试了我的网络应用程序,也通过cURL,我可以很容易地复制这个问题。
基本使用模式:
概括如下:
这令人忧虑,原因有二:
我尝试过使用我的web应用程序中的API,并通过cURL,也会发生同样的行为(即挂起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值设置得很好,将这些值排除在代码之外)。
发布于 2021-06-22 18:51:00
我也遇到了类似的问题,这与Xdebug有关( PHP 7.4.15的版本3.0.2),当扩展被禁用时,SDK抛出异常而不挂起。
https://stackoverflow.com/questions/56403451
复制相似问题