【问题标题】:AWS S3: Image resize using lambda in laravel 5.3AWS S3:在 laravel 5.3 中使用 lambda 调整图像大小
【发布时间】:2017-02-08 20:04:21
【问题描述】:

目前我在 Laravel 5.3 中的图片上传系统是这样工作的。

1.用户上传图片。

2.使用imagick库调整图片大小。

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

现在效果很好,我想使用 AWS lambda 移动第二步(图像调整大小),但我找不到任何关于 AWS lambda 与 php 集成的信息 但是官方文档中提供了 node-js 和 java 集成指南。

那么还有其他服务(除了 aws lambda)可以实现我的功能吗?

【问题讨论】:

  • 嘿@Jabaa,我想在图像已经在存储桶中之后调整它们的大小。您对此有什么好的解决方案吗?

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


【解决方案1】:

您可以在 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

【讨论】:

    【解决方案2】:

    目前 AWS lambda 函数不支持 php,作为 PHP 开发人员,您可以轻松编写 nodeJS 脚本来实现图像调整大小功能。最多它会出现 12 到 15 行。许多示例也可用于相同的功能。 S3 自动触发配置,您可以对 lambda 函数进行配置。所以你的工作将非常少。

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

    如果您想直接从应用程序 (php) 将其自身存储到 s3 存储桶中,则编写代码以重新调整大小并将其存储在与您的应用程序不同的两个存储桶中。

    【讨论】:

    • @NinoŠkopac 请解释你的答案
    • @kamal Gadepalli 我没明白这个As you are a PHP developer you can easily write nodeJS script for Image re-size functionality的意思
    • @Jabaa 我相信这意味着如果您知道如何编写 PHP,那么您应该不会觉得为 node.js 编写 javascript 很困难。它们在语法上非常相似,因此在它们之间切换应该不会令人生畏。
    • @KamalGadepalli 是的,如果您可以使其二进制兼容并将其打包以在standard Lambda AMI 上运行,那么您可以使用简单的节点包装器在 Lambda for Node 中运行它spawn a child process
    • 我在node js方面没有这么丰富的经验
    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2018-05-18
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2023-03-21
    相关资源
    最近更新 更多