【问题标题】:Resize images while uploading to Amazon S3 bucket在上传到 Amazon S3 存储桶时调整图像大小
【发布时间】:2018-05-22 10:16:34
【问题描述】:

我正在用 PHP 开发一个 API,我必须上传调整大小的图像。如何在上传到 Amazon S3 存储桶时调整图像大小?

我必须上传最大尺寸为 1920*1080 的图片

【问题讨论】:

  • 您可以使用CloudinaryImgix 等云服务,而不是尝试自己调整图像大小。

标签: php amazon-web-services amazon-s3 aws-lambda


【解决方案1】:

“AWS 方式”是为您将图像上传到的存储桶创建一个 s3 事件通知,然后在每次将新文件放入存储桶时调用一个 Lambda 函数 - lambda 函数会执行调整大小并将新图像保存到不同的位置或不同的名称。

您的 PHP 应用程序需要做的就是将对象“放入”桶中,然后让 lambda 完成其余的工作 - 可以肯定的是,互联网上有很多例子可以做到这一点。

【讨论】:

  • AWS 是否支持 PHP 中的 lambda 函数?
  • 是否可以连接php aws SDK - lambda?我的意思是 AWS PHP SDK 调用 lambda 函数,然后上传到 s3。目前ec2使用PHP SDK上传图片到S3,然后通过lambda调整大小。
【解决方案2】:

在将图像上传到 S3 之前,您必须先使用 PHP 在本地调整图像大小。您可以使用现有的 PHP 库来调整大小,例如 php-image-resize

【讨论】:

【解决方案3】:

我会推荐使用像 Cloudinary 这样可以直接连接到 AWS 存储桶的图像优化服务。但这仅在付费计划中可用,如https://support.cloudinary.com/hc/en-us/articles/202520492-Can-images-be-stored-in-my-own-S3-bucket-中所述

另一种方法是托管 Imgur 的克隆;您自己的 S3 上的另一个图像优化服务。这里解释的过程:https://hackernoon.com/building-a-highly-scalable-imgur-clone-with-lambda-and-s3-aaf9da422c3e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2023-02-04
    • 2018-04-12
    • 2021-12-02
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多