我们计划将我们的图像上传和调整大小系统之一迁移到 AWS 云中。
建议的解决方案
1.用户上传文件到AWS s3。
S3 上传调用 AWS lambda 中的 lambda 函数,该函数会将大小调整为指定大小(例如 250*250)并将其放入另一个 s3 存储桶中。
我们有一个选项,用户可以看到调整大小的图像并批准按钮。
由于上传图像和调整大小是两个独立的实体,因此无法识别图像裁剪是成功还是失败。
lambda 函数
function cropImage(objectKey){
//do resize here
if(success){
//need to the objectKey in the php function
}
}
那么有什么方法可以从 aws lambda 函数与 php 进行通信吗?
最佳答案
我们的系统使用了一种方法。用户通过 UI 或我们系统的扩展上传文件。系统处理该文件并将其上传到S3。 文件上传后,系统调用 AWS Lambda,传递元信息,例如返回结果的 API 端点。我们调整每个图像的大小,收集数据并将 JSON 发送回端点。 当然,这比将整个工作委托(delegate)给 AWS 稍微复杂一些,但它是一种动态方法,允许您从具有公共(public) IP 的任何服务器运行系统。
如果只有一台服务器,为什么不在 Lambda 上保留服务器的配置。有环境变量可供设置。在这种情况下,您需要为所有调整大小的图像提供端点或预先确定的命名模式。
关于php - AWS lambda :Large sized image upload and resizing in php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980546/