我正在从当前的云提供商切换到AWS。图像文件当前存储在主磁盘本地,但是移至AWS S3,因此必须更改整个结构。在执行S3操作之前,我必须先声明一个S3客户端,这可以正常工作。一位AWS支持工程师建议我将客户端设置为全局变量一次,因为如果在上拉或刷新页面时实例化新客户端,将会对性能造成影响。据我所知,在php中,这可以通过使S3客户端对象成为会话变量来完成。当我保留局部变量形式时,提交就可以了。但是,当我将其声明为会话变量时,表单处理会引发运行时异常,并且发布变量不会发送到操作页面。该表单是非常简单的登录表单,仅用于查找用户名和密码。我在执行页面脚本结束时遇到的错误是:
致命错误:/var/www/transitionsquad/html/vendor/aws/aws-sdk-php/src/AwsClient.php中出现未捕获的异常“ RuntimeException”,消息为“无法序列化Aws \ S3 \ S3Client的实例” :254堆栈跟踪:#0 [内部函数]:Aws \ AwsClient-> __ sleep()#1 {main}抛出在/ var / www / transitionsquad / html / vendor / aws / aws-sdk-php / src / AwsClient中。第254行上的php
这是运行带有ubuntu的LAMP堆栈的Linux服务器。
我期望输入的是userid和password POST变量。但是,当S3客户端是会话变量时,我变得一片空白,但是当将其声明为局部变量时,一切都很好。