AWS S3:使用laravel 5.3中的lambda调整图像大小

时间:2017-02-08 09:09:50

标签: php amazon-web-services amazon-s3 lambda laravel-5.3

目前,Laravel 5.3中的图像上传系统就像这样。

1.User上传图片。

2.使用imagick库重新调整图像。

3.在AWS S3中存储原始图像和裁剪图像。

这很好用现在我想用AWS lambda移动第二步(Image resize)但我找不到任何关于AWS lambda与php的集成 但是官方文档中提供了node-js和java集成指南。

所以有任何其他服务(除了aws lambda)可以实现我的功能吗?

2 个答案:

答案 0 :(得分:3)

您可以在AWS Lambda上使用PHP或任何其他语言,但您需要将其封装在NodeJS包装器中。

幸运的是,AWS提供了关于如何执行此操作的官方非常直接的指南:https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-running-php-ruby-and-go/

此外,如果您想节省一些时间(通过不按照上述文章中的说明手动构建PHP发行版),您可以使用以下Docker容器:https://github.com/dannylinden/aws-lambda-php

答案 1 :(得分:-1)

目前AWS lambda函数不支持php。由于您是PHP开发人员,因此您可以轻松地为Image重新调整大小功能编写nodeJS脚本。最大值为12到15行。许多示例也可用于相同的功能。 S3可以对lambda函数进行自动触发配置。所以你的工作将是非常小的。

但是如果你正在寻找任何替代解决方案,你必须使用ec2实例,你必须公开一个REST API。该API应该能够接收图像并重新调整大小,最后将原始图像和重新调整大小的图像存储到两个不同的AWS s3存储桶中(但不推荐)。

如果你想直接从应用程序(php)直接存储到s3存储桶中,那么请编写代码以重新调整大小并将其存储在应用程序的各个存储桶中。