【发布时间】:2018-05-22 10:16:34
【问题描述】:
我正在用 PHP 开发一个 API,我必须上传调整大小的图像。如何在上传到 Amazon S3 存储桶时调整图像大小?
我必须上传最大尺寸为 1920*1080 的图片
【问题讨论】:
-
您可以使用Cloudinary 和Imgix 等云服务,而不是尝试自己调整图像大小。
标签: php amazon-web-services amazon-s3 aws-lambda
我正在用 PHP 开发一个 API,我必须上传调整大小的图像。如何在上传到 Amazon S3 存储桶时调整图像大小?
我必须上传最大尺寸为 1920*1080 的图片
【问题讨论】:
标签: php amazon-web-services amazon-s3 aws-lambda
“AWS 方式”是为您将图像上传到的存储桶创建一个 s3 事件通知,然后在每次将新文件放入存储桶时调用一个 Lambda 函数 - lambda 函数会执行调整大小并将新图像保存到不同的位置或不同的名称。
您的 PHP 应用程序需要做的就是将对象“放入”桶中,然后让 lambda 完成其余的工作 - 可以肯定的是,互联网上有很多例子可以做到这一点。
【讨论】:
在将图像上传到 S3 之前,您必须先使用 PHP 在本地调整图像大小。您可以使用现有的 PHP 库来调整大小,例如 php-image-resize。
【讨论】:
我会推荐使用像 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
【讨论】: