如何解决如何在仅创建 S3 对象预签名 URL 时修复内存耗尽问题
我在我用 PHP 构建的网站中生成存储在 S3(使用 AWS PHP 开发工具包)上的图像的签名 URL。当我尝试为超过 40 张图像生成签名 URL 时出现 500 错误,但通过单击“重新加载”,它会加载所有图像。 经过调查,我发现以下错误导致了 500 错误。
Allowed memory size of 67108864 bytes exhausted (tried to allocate 20480 bytes) in /vendor/aws/aws-sdk-php/src/data/s3/2006-03-01/api-2.json.php on line 3
Allowed memory size of 67108864 bytes exhausted (tried to allocate 32768 bytes) in /system/core/Exceptions.php on line 1
生成预签名 URL 的代码
$s3 = new S3Client([
'region' => 'region','version' => 'latest','credentials' => [
'key' => "myKey",'secret' => "Secret here"
]
]);
$cmd = $s3->getCommand('GetObject',[
'Bucket' => $bucket,'Key' => $keyname
]);
$request = $s3->createPresignedRequest($cmd,'+30 minutes');
$presignedUrl = (string)$request->getUri();
在不同的论坛上,现在建议内存大小至少应为 128 MB。我会增加大小,但我担心的是我只会得到图像的签名 URL,然后它如何使内存耗尽。有没有更好的方法来解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。